Linux中如何查看服务及监听端口

时间:2021-03-06 05:02:39

【实例:Linux中如何查看服务及监听端口】

问:我该如何发现哪种服务正在某个特定端口上监听呢?我如何发现哪一个程序正在一个特定端口上监听呢?

  请输入下面的命令:

  # 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/python

  tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 5562/cupsd

  tcp 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/exim4

  udp 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/dhclient3

  udp 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