linux 如何查看服务和端口

作者&投稿:宓建 (若有异议请与网页底部的电邮联系)
如何查看linux服务器开放了哪些端口~

常常看到有些人想要知道自己的Linux主机到底开放了多少Port?要如何来检测呢。通常我们知道的Port有下面这几个:

* ftp:21
* telnet:23
* smtp:25
* http:80
* pop-3:110
* netbios-ssn:139
* squid:3128
* mysql:3306
端口当然不只这些个,如何知道Port是否被开启呢?

检测你开启的服务有哪些?使用功能强大的 netstat 指令。

在做为服务器的Linux系统中,服务项目是越少越好!这样可以减少避免不必要的入侵通道。要了解自己的系统当中的服务项目,最简便的方法就是使用nestat 了!这个命令不但简单(是每一个Linux系统都会安装的套件!),而且功能也是很不错的,例如我们在检查WWW使用者的人数时,就很需要这个命令!好了,我们来看一下netstat 的使用方法:
复制内容到剪贴板
代码:
[root@localhost ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address Stat e
tcp 0 0 ::ffff:192.168.1.178:ssh ::ffff:192.168.1.175:4235 ESTA BLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 10 [ ] DGRAM 4701 /dev/log
unix 2 [ ] DGRAM 5846 @/var/run/hal/hotplug_s ocket
unix 2 [ ] DGRAM 2901 @udevd
unix 3 [ ] STREAM CONNECTED 5845 /var/run/dbus/system_bu s_socket
unix 3 [ ] STREAM CONNECTED 5844
unix 3 [ ] STREAM CONNECTED 5792 /var/run/dbus/system_bu s_socket
unix 3 [ ] STREAM CONNECTED 5791
unix 3 [ ] STREAM CONNECTED 5724
unix 3 [ ] STREAM CONNECTED 5723
如上所示,单纯使用 netstat 的时候,仅 列出目前已经连通的服务与服务名称。所以你可以看到,由于目前仅有一个ssh连接成功,所有就只显示出一个 ESTABLISHED(连接中的意思)。 上面的 :
复制内容到剪贴板
代码:
tcp 0 0 ::ffff:192.168.1.178:ssh ::ffff:192.168.1.175:4235
这一行表示有一个SSH的服务开放,是由远端的 192.168.1.175这个IP连接到 192.168.1.178 的。而连接的端口是4235。那如果我需要将所有的项目列出来呢?
复制内容到剪贴板
代码:
[root@localhost ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address Stat e
tcp 0 0 *:32768 *:* LIST EN
tcp 0 0 *:sunrpc *:* LIST EN
tcp 0 0 *:auth *:* LIST EN
tcp 0 0 localhost.localdomain:ipp *:* LIST EN
tcp 0 0 localhost.localdomain:smtp *:* LIST EN
tcp 0 0 *:ssh *:* LIST EN
tcp 0 0 ::ffff:192.168.1.178:ssh ::ffff:192.168.1.175:1237 ESTA BLISHED
udp 0 0 *:32768 *:*
udp 0 0 *:955 *:*
udp 0 0 *:sunrpc *:*
udp 0 0 *:ipp *:*
如上所示,加入 -a(all)就可以了。将所有在机器上 (监听 Listem)或者是(已建立连接的)的服务通通列出的意思。不过,服务的名称已经使用 /etc/services 里面的名称了,而不是使用 port 的数字!目前我主机上面的服务共开放了:sunrpc、auth、ssh、ipp、smtp.等服务(就是 Listen的那几个服务)至于已经建立的服务就只有 SSH 这一个!那如果我想知道开放了哪些端口号呢?呵呵,就使用下面的命令吧!
复制内容到剪贴板
代码:
[root@localhost ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 52 ::ffff:192.168.1.178:22 ::ffff:192.168.1.175:1237 ESTABLISHED
udp 0 0 0.0.0.0:32768 0.0.0.0:*
udp 0 0 0.0.0.0:955 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 0.0.0.0:631 0.0.0.0:*
如上所示,我接通的服务只有22这一个,而其它的你可以参照上面的命令输出结果来对照,所以你就可以知道:smtp为25端口。因此,通过使用此命令,就可以轻易的子解目前主机的运作状况与服务状态了。当然了,netstat的用途不止于此,你可以使用 man netstat 来查阅一番喔!相信对你的主机会有更大的了解。

相信有不少的朋友都会有这个困扰,就是要怎样删除已经建立的联机呢?因为总有些不速之客会连到您的主机来进行一些破坏的工作!或者是您根本不想让对方联机过来!呵呵!还记得 鸟哥的 Linux 私房菜--基础学习篇内的资源管理 里面提到的几个常用的指令吧!?那就是找出那个联机程序的 PID ,然后给他 kill 掉就是了!简单呀!不过,大问题是『我要怎样找出联机的 PID 呀!?』呵呵!由于 PID 的管理与整体的系统资源有关,这个时候,虽然可以使用 netstat 来观察 PID ,不过只有 root 可以观察到联机状态的 PID 号码呦!( 注:还记得资源管理提及的 PID 概念吗?就是说,在 Linux 系统之内,每个『程序』系统都会给予一个号码来管理!这个就是 PID 啰!)
 
复制内容到剪贴板
代码:
[root@test root]# netstat -ap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:ssh *:* LISTEN 32149/sshd
tcp 0 284 140.116.141.19:ssh 192.168.1.11:1391 ESTABLISHED 24751/sshd
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 7 [ ] DGRAM 944 509/syslogd /dev/log
unix 2 [ ] DGRAM 3035915 16648/xinetd
unix 2 [ ] DGRAM 739227 5951/pppoe
unix 2 [ ] DGRAM 739189 5949/pppd
unix 2 [ ] DGRAM 1070 628/crond
unix 2 [ ] DGRAM 953 514/klogd
unix 2 [ ] STREAM CONNECTED 690 1/init [3]
 
看到上面那个斜体字的联机建立的网络状态了吗?嘿嘿!最后面一栏就是显示那个 PID/Program name ,那个 PID ( 上面是 24751 )也就是我们要来砍掉的啦!这个时候,如果要将该联机砍掉时,就直接以 kill 来做吧!
 
复制内容到剪贴板
代码:
[root@test root]# kill -9 24751
 
这样就能将该联机给他『踢出去』您的主机啦!! ^_^""

  可以通过netstat命令进行简单查询
  netstat命令各个参数说明如下:
  -t : 指明显示TCP端口
  -u : 指明显示UDP端口
  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
  -n : 不进行DNS轮询,显示IP(可以加速操作)
  3
  即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况··
  netstat -ntlp //查看当前所有tcp端口·
  netstat -ntulp |grep 80 //查看所有80端口使用情况·
  netstat -an | grep 3306 //查看所有3306端口使用情况·

  1. netstat/lsof  

  2. netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况  

  3. -a 显示一个所有的有效连接信息列表(包括已建立的连接,也包括监听连接请求的那些连接)  

  4. -n 显示所有已建立的有效连接  

  5. -t tcp协议  

  6. -u udp协议  

  7. -l 查询正在监听的程序  

  8. -p 显示正在使用socket的程序识别码和程序名称  

  9. 例如:netstat -ntupl|grep processname  

  10. 如何只查询tomcat的连接?  

  11. netstat -na|grep ESTAB |grep 80 |wc-l  

  12. netstat -na|grep ESTAB |grep 8080 |wc-l  

  13. 常用端口介绍:  

  14. 端口:21  

  15. 服务:FTP服务器所开放的端口,用于上传、下载。  

  16. 端口: 22  

  17. 服务:ssh  

  18. 端口: 80  

  19. 服务:HTTP 用于网页浏览  

  20. 端口:389  

  21. 服务:LDAP ILS 轻型目录访问协议和NetMeetingInternet Locator Server  

  22. 端口:443  

  23. 服务:网页浏览端口 能提供加密和通过安全端口传输的另一种HTTP  

  24. 端口:8080  

  25. 服务:代理端口  

  26. 打开终端,执行如下命令,查看各进程占用端口情况:  

  27. # ps -ef|wc -l //查看后台运行的进程总数  

  28. # ps -fu csvn //查看csvn进程  

  29. # netstat -lntp //查看开启了哪些端口  

  30. # netstat -r //本选项可以显示关于路由表的信息  

  31. # netstat -a //本选项显示一个所有的有效连接信息列表  

  32. # netstat -an|grep 8080  

  33. # netstat -na|grep -i listen //可以看到目前系统侦听的端口号  

  34. # netstat -antup //查看已建立的连接进程,所占用的端口。  

  35. netstat -anp|grep1487  

  36. lsof -i:1487  



  可以通过netstat命令进行简单查询
  netstat命令各个参数说明如下:
  -t : 指明显示TCP端口
  -u : 指明显示UDP端口
  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
  -n : 不进行DNS轮询,显示IP(可以加速操作)
  3
  即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况··
  netstat -ntlp //查看当前所有tcp端口·
  netstat -ntulp |grep 80 //查看所有80端口使用情况·
  netstat -an | grep 3306 //查看所有3306端口使用情况·

问:我该如何发现哪种服务正在某个特定端口上监听呢?我如何发现哪一个程序正在一个特定端口上监听呢? 答:在*NIX系统中,你可以使用下面的任何一个命令来得到在一个特定TCP端口上监听的列表。 Lsof:其功能是列示打开的文件,包括监听端口。 netstat :此命令象征性地展示各种与网络有关的数据和信息的内容。 Lsof命令示例 你可以输入下面的命令来查看IPv4端口: # lsof -Pnl +M -i4 你可以输入下面的命令来查看IPv6协议下的端口列示: # lsof -Pnl +M -i6 此例输出: 这里我们不妨解释一 下。第一栏是command,它给出了程序名称的有关信息。请注意标题的细节。例如,第二行的gweather* 命令从美国 NWS服务器(140.90.128.70)获取天气的报告信息,包括交互天气信息网络和其它的天气服务。在这里,我们解释一下命令各个参数。 1. -P :这个选项约束着网络文件的端口号到端口名称的转换。约束转换可以使lsof运行得更快一些。在端口名称的查找不能奏效时,这是很有用的。 2. -n : 这个选项约束着网络文件的端口号到主机名称的转换。约束转换可以使lsof的运行更快一些。在主机名称的查找不能奏效时,它非常有用。 3. -l :这个选项约束着用户ID号到登录名的转换。在登录名的查找不正确或很慢时,这个选项就很有用。 4. +M :此选项支持本地TCP和UDP端口映射程序的注册报告。 5. -i4 :仅列示IPv4协议下的端口。 6. -i6 : 仅列示IPv6协议下的端口。 Netstaty命令举例 请输入下面的命令: # netstat -tulpn 或者是 # netstat -npl 请看输出结果:: Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:6881 0.0.0.0:* LISTEN 6908/pythontcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 5562/cupsdtcp 0 0 127.0.0.1:3128 0.0.0.0:* LISTEN 6278/(squid)tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 5854/exim4udp 0 0 0.0.0.0:32769 0.0.0.0:* 6278/(squid)udp 0 0 0.0.0.0:3130 0.0.0.0:* 6278/(squid)udp 0 0 0.0.0.0:68 0.0.0.0:* 4583/dhclient3udp 0 0 0.0.0.0:6881 0.0.0.0:* 6908/python 请注意,最后一栏给出了关于程序名称和端口的信息。在这里,我们解释一下各参数的含义: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序) -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。 -n : 不进行DNS轮询(可以加速操作) 关于/etc/services文件 /etc/services是一个纯ASCII文件,它可以提供互联网服务的友好文本名称,还有其默认分配的端口号和协议类型。你可以借助于cat命令或less命令等来查看这个文件: $ cat /etc/services$ grep 110 /etc/services$ less /etc/services


冠县15866927830: Linux中如何查看服务及监听端口 -
濮丁消炎: 可以通过netstat命令进行简单查询netstat命令各个参数说明如下:-t : 指明显示TCP端口-u : 指明显示UDP端口-l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)-p : 显示进程标识...

冠县15866927830: linux如何查看正在使用的端口 -
濮丁消炎: 查看端口使用情况,使用netstat命令. 查看已经连接的服务端口(ESTABLISHED netstat -a 查看所有的服务端口(LISTEN,ESTABLISHED) netstat -ap 查看8080端口,则可以结合grep命令:netstat -ap | grep 8080 如查看8888端口!

冠县15866927830: linux 通过哪个命令可以查看某个服务及其端口,进程号 -
濮丁消炎: 1)使用lsof命令 lsof是一个非常强大的linux工具,她被用来查找哪些程序使用了那些文件.在linux系统下,基本上所有的东西都可以被当作文件来用.socket当然也是一种文件了.所以lsof可以用来查找谁用了某一个端口.具体方法: lsof -i :port_nu...

冠县15866927830: 如何查看“linux服务器”IP和端口? -
濮丁消炎: 参考方法: 1、用netstat查看: 2、lsof-i:port,使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接.3、nmap端口扫描.4、文件/etc/services显示的各个服务的端口号:根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等. 具体步骤如下:/导致这种情况的原因主要是……

冠县15866927830: 怎样查看Linux正在使用的所有端口号 -
濮丁消炎: 使用命令netstat -antu可以查看所有tcp、udp端口开放情况 其中-a表示查看所有状态的端口,默认只看连接的 n表示显示数字端口号,而不显示名称,例如显示80而不是http t表示tcp端口 u表示udp端口

冠县15866927830: linux 怎么查看开启的端口 -
濮丁消炎: 命令一 netstat -a 查看所有服务端口 命令二 nmap +ip地址 yum install nmap 安装nmap软件包 linux开放服务端口的设置 /etc/sysconfig/iptables vi iptables 加入如下内容 -A INPUT -p tcp -m tcp --dport 6001 -j ACCEPT 然后保存退出,重启服务 /etc/init.d/iptables restarts 查看端口是否开放 /sbin/iptables -L -n

冠县15866927830: linux系统如何查看哪些端口被占用 -
濮丁消炎: 使用netstat命令查看,端口使用情况.其中Local Address 有端口的表示本机启用的服务占用的端口,这些端口一直被服务占用.Foreign Address有端口的是外部程序连接本机服务,本机随机分配的端口,这些端口随着外包程序断开连接自动释放

冠县15866927830: linux如何查看某个应用占用的端口是多少 -
濮丁消炎: 使用命令:netstat –apn 即可查看所有的进程和端口使用情况.

冠县15866927830: Linux 查看ip 端口 进程的几种方法 -
濮丁消炎: 查看IP: ifconfig 查看端口占用如: netstat –anp | grep 8080 查看进程 ps -aux | grep "mysql"

冠县15866927830: linux 怎么查看程序的端口 -
濮丁消炎: 使用lsof命令具体方法: lsof -i :port_number |grep "(LISTEN)" -i是用来查找和网络相关的文件,":"号是必须的,它是标志你查找的是一个端口.port_number就是你要查找的端口号,譬如你要查找是否 有程序占用了oracle的监听端口1521...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网