Linux系统之查看进程监听端口方法

这篇具有很好参考价值的文章主要介绍了Linux系统之查看进程监听端口方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、端口监听介绍

在Linux系统中,,每个服务启动的时候都会通过一个端口来进行监听,所有端口都与OS中的进程ID或服务相关联。在日常的Linux系统运维中,我们有时需要某些特定服务的进程正在侦听哪个端口号。

二、使用netstat命令

1.netstat命令介绍

netstat命令 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

2.netstat帮助

-a或--all:显示所有连线中的Socket;
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
-c或--continuous:持续列出网络状态;
-C或--cache:显示路由器配置的快取信息;
-e或--extend:显示网络其他相关信息;
-F或--fib:显示FIB;
-g或--groups:显示多重广播功能群组组员名单;
-h或--help:在线帮助;
-i或--interfaces:显示网络界面信息表单;
-l或--listening:显示监控中的服务器的Socket;
-M或--masquerade:显示伪装的网络连线;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
-o或--timers:显示计时器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-r或--route:显示Routing Table;
-s或--statistice:显示网络工作信息统计表;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-v或--verbose:显示指令执行过程;
-V或--version:显示版本信息;
-w或--raw:显示RAW传输协议的连线状况;
-x或--unix:此参数的效果和指定"-A unix"参数相同;
--ip或--inet:此参数的效果和指定"-A inet"参数相同。

3.安装netstat工具

在最小化安装中,默认是没有安装netstat工具,需要手动进行安装。

yum -y install net-tools

4.列出所有监听 tcp 端口

只列出所有监听 tcp 端口

[root@master ~]# netstat -lt  
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:igrs          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN     
tcp        0      0 localhost:38443         0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:webcache        0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
tcp        0      0 localhost:38457         0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:pcsync-https    0.0.0.0:*               LISTEN     
tcp        0      0 localhost:5533          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:zabbix-trapper  0.0.0.0:*               LISTEN     
tcp6       0      0 localhost:igrs          [::]:*                  LISTEN     
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN     
tcp6       0      0 localhost:38443         [::]:*                  LISTEN     
tcp6       0      0 [::]:webcache           [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN     
tcp6       0      0 localhost:38457         [::]:*                  LISTEN     
tcp6       0      0 [::]:pcsync-https       [::]:*                  LISTEN     
tcp6       0      0 [::]:zabbix-trapper     [::]:*                  LISTEN   

5.显示TCP端口的统计信息

[root@master ~]# netstat -st
IcmpMsg:
    InType3: 15
    InType8: 4
    OutType0: 4
    OutType3: 139486
Tcp:
    4028 active connections openings
    17 passive connection openings
    4 failed connection attempts
    1392 connection resets received
    3 connections established
    609725 segments received
    615954 segments send out
    5878 segments retransmited
    810 bad segments received.
    11476 resets sent
UdpLite:
TcpExt:
    20 invalid SYN cookies received
    1227 packets pruned from receive queue because of socket buffer overrun
    602 TCP sockets finished time wait in fast timer
    693 delayed acks sent
    Quick ack mode was activated 369 times
    17 packets directly queued to recvmsg prequeue.
    154418 packet headers predicted
    16974 acknowledgments not containing data payload received
    48604 predicted acknowledgments
    19 times recovered from packet loss by selective acknowledgements
    1 bad SACK blocks received
    Detected reordering 1 times using FACK
    2 congestion windows fully recovered without slow start
    224 congestion windows recovered without slow start after partial ack
    7 timeouts after SACK recovery
    4 timeouts in loss state
    19 fast retransmits
    1 forward retransmits
    1544 other TCP timeouts
    TCPLossProbes: 692
    TCPLossProbeRecovery: 69
    2 SACK retransmits failed
    4074 packets collapsed in receive queue due to low socket buffer
    357 DSACKs sent for old packets
    110 DSACKs sent for out of order packets
    290 DSACKs received
    484 connections reset due to unexpected data
    41 connections reset due to early user close
    449 connections aborted due to timeout
    TCPDSACKIgnoredNoUndo: 143
    TCPSpuriousRTOs: 5
    TCPSackShiftFallback: 179
    IPReversePathFilter: 8
    TCPRcvCoalesce: 327751
    TCPOFOQueue: 340347
    TCPOFOMerge: 108
    TCPChallengeACK: 1691
    TCPSYNChallenge: 1689
    TCPFromZeroWindowAdv: 1
    TCPToZeroWindowAdv: 1
    TCPWantZeroWindowAdv: 3483
    TCPSynRetrans: 1804
    TCPOrigDataSent: 137805
    TCPHystartTrainDetect: 8
    TCPHystartTrainCwnd: 166
IpExt:
    InNoRoutes: 29
    InMcastPkts: 37586
    InBcastPkts: 143772
    InOctets: 1235902418
    OutOctets: 634853490
    InMcastOctets: 1353160
    InBcastOctets: 23982240
    InNoECTPkts: 2468463

6.查看某个服务监听端口

日常使用最多的是这个命令,加上-tunlp选项。

[root@master ~]# netstat -tunlp |grep 100
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      6172/docker-proxy   
tcp6       0      0 :::10051                :::*                    LISTEN      6179/docker-proxy   

三、使用ss命令

1.ss命令介绍

ss命令 用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。

2.ss命令帮助

-h, --help      帮助信息
-V, --version   程序版本信息
-n, --numeric   不解析服务名称
-r, --resolve   解析主机名
-a, --all       显示所有套接字(sockets)
-l, --listening 显示监听状态的套接字(sockets)
-o, --options   显示计时器信息
-e, --extended  显示详细的套接字(sockets)信息
-m, --memory    显示套接字(socket)的内存使用情况
-p, --processes 显示使用套接字(socket)的进程
-i, --info      显示 TCP内部信息
-s, --summary   显示套接字(socket)使用概况
-4, --ipv4      仅显示IPv4的套接字(sockets)
-6, --ipv6      仅显示IPv6的套接字(sockets)
-0, --packet    显示 PACKET 套接字(socket)
-t, --tcp       仅显示 TCP套接字(sockets)
-u, --udp       仅显示 UCP套接字(sockets)
-d, --dccp      仅显示 DCCP套接字(sockets)
-w, --raw       仅显示 RAW套接字(sockets)
-x, --unix      仅显示 Unix套接字(sockets)
-f, --family=FAMILY  显示 FAMILY类型的套接字(sockets),FAMILY可选,支持  unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
      QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE     将原始TCP套接字(sockets)信息转储到文件
 -F, --filter=FILE  从文件中都去过滤器信息
       FILTER := [ state TCP-STATE ] [ EXPRESSION ]

3.查看某个服务监听端口

根netstat用法一样,但是显示的信息更为详细。

[root@master ~]# ss -tunlp |grep 100
tcp    LISTEN     0      100    127.0.0.1:25                    *:*                   users:(("master",pid=3648,fd=13))
tcp    LISTEN     0      128       *:10051                 *:*                   users:(("docker-proxy",pid=6172,fd=4))
tcp    LISTEN     0      100     ::1:25                   :::*                   users:(("master",pid=3648,fd=14))
tcp    LISTEN     0      128      :::10051                :::*                   users:(("docker-proxy",pid=6179,fd=4))

四、使用lsof命令

1.lsof命令介绍

lsof命令 用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP)。需要root用户权限执行。

2.lsof命令帮助

-a:列出打开文件存在的进程;
-c<进程名>:列出指定进程所打开的文件;
-g:列出GID号进程详情;
-d<文件号>:列出占用该文件号的进程;
+d<目录>:列出目录下被打开的文件;
+D<目录>:递归列出目录下被打开的文件;
-n<目录>:列出使用NFS的文件;
-i<条件>:列出符合条件的进程(协议、:端口、 @ip )
-p<进程号>:列出指定进程号所打开的文件;
-u:列出UID号进程详情;
-h:显示帮助信息;
-v:显示版本信息

3.安装lsof工具

默认在centos7.6最小化安装中没有此工具,需要手动安装lsof工具。

yum -y install lsof

4.查看端口号下所有进程

[root@master ~]# lsof -i :10051
COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
docker-pr 6172 root    4u  IPv4 1470713      0t0  TCP *:zabbix-trapper (LISTEN)
docker-pr 6179 root    4u  IPv6 1468048      0t0  TCP *:zabbix-trapper (LISTEN)

五、使用fuser命令

1.fuser命令介绍

fuser命令 用于报告进程使用的文件和网络套接字。fuser命令列出了本地进程的进程号,那些本地进程使用file,参数指定的本地或远程文件。

2.fuser命令帮助

-a:显示命令行中指定的所有文件;
-k:杀死访问指定文件的所有进程;
-i:杀死进程前需要用户进行确认;
-l:列出所有已知信号名;
-m:指定一个被加载的文件系统或一个被加载的块设备;
-n:选择不同的名称空间;
-u:在每个进程后显示所属的用户名。

3.安装fuser工具

默认在centos7.6最小化安装中没有此工具,需要手动安装fuser工具。文章来源地址https://www.toymoban.com/news/detail-782499.html

 yum -y install psmisc

4.查看某个服务详细信息

  • 先检查某个端口对应进程的PID
[root@master ~]# fuser 10051/tcp
10051/tcp:            6172  6179

  • 使用ps查询对应进程详细信息
[root@master ~]# ps -ef |grep 6172
root      6172  6908  0 Feb25 ?        00:00:00 /usr/local/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 10051 -container-ip 172.66.10.12 -container-port 10051
root     24000 18100  0 15:48 pts/0    00:00:00 grep --color=auto 6172
[root@master ~]# ps -ef |grep 6179
root      6179  6908  0 Feb25 ?        00:00:00 /usr/local/bin/docker-proxy -proto tcp -host-ip :: -host-port 10051 -container-ip 172.66.10.12 -container-port 10051
root     24002 18100  0 15:48 pts/0    00:00:00 grep --color=auto 6179


5.查询端口及对应进程

[root@master ~]#  fuser -v -n tcp 10051
                     USER        PID ACCESS COMMAND
10051/tcp:           root       6172 F.... docker-proxy
                     root       6179 F.... docker-proxy

到了这里,关于Linux系统之查看进程监听端口方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux编程中查看TCP监听的端口和连接

    netstat命令是一个网络工具,可以显示网络连接、路由表和网络接口等信息。使用以下命令可以查看当前的TCP监听端口和连接: -t 显示TCP协议的连接情况 -l:显示监控中的服务器的socket。 -n 以数字形式显示IP地址和端口号。 ss(Socket Statistics)命令是一个更快速和更强大的替代

    2024年02月06日
    浏览(33)
  • 查看服务器的监听端口(Windows、Linux、MacOS)

    打开命令行窗口(Windows)或终端(Linux/MacOS)。 输入以下命令: 按下回车键,将会列出所有正在监听的端口及其对应的进程ID。 如果需要查看某个特定端口的监听情况,可以使用以下命令: 其中,将“端口号”替换为需要查看的端口号。 如果需要查看进程ID对应的进程名称

    2024年02月08日
    浏览(45)
  • (Linux)查看端口占用并关闭进程

    更多请参考:Linux netstat命令 kill 命令将信号发送到指定的进程或进程组,使它们根据该信号进行操作。未指定信号时,默认为 -15 参考:Linux中的Kill命令

    2024年02月17日
    浏览(31)
  • linux怎么查看端口被哪个进程占用

    两种查看方法(例如80端口): 1、使用fuser命令,可以直接在Linux上查看指定端口被哪个进程占用了,语法为“fuser -v 80/tcp”,运行结果里会包含进程的名字和id。 2、使用lsof命令,能根据指定端口找到对应的进程信息,语法为“lsof -i:80”,可以在输出结果中查看占用80端口的

    2024年02月13日
    浏览(37)
  • Linux中查看端口被哪个进程占用、进程调用的配置文件、目录等

    1.查看被占用的端口的进程, netstat/ss -antulp | grep :端口号 2.通过上面的命令就可以列出,这个端口被哪些应用程序所占用,然后找到对应的进程PID 3.根据PID查询进程。如果想详细查看这个进程,PID具体是哪一个进程,可以通过命令的方式进行查看进程的详细信息, ps -ef | gr

    2024年02月16日
    浏览(33)
  • Linux学习之nginx虚拟域名主机,lsof和netstat命令查看端口是否被监听

    需要先参考我的博客《Linux学习之Ubuntu 20.04在https://openresty.org下载源码安装Openresty 1.19.3.1,使用systemd管理OpenResty服务》安装好 Openresty 。 虚拟域名可以使用让不同的域名访问到同一台主机。 cd /usr/local/openresty 切换当前访问目录到 /usr/local/openresty 。 在 /usr/local/openresty/nginx/co

    2024年02月11日
    浏览(39)
  • linux 命令--查看网络端口命令

    netstat 是一个命令行工具,可以提供有关网络连接的信息。 netstat - atulnp会显示所有端口和所有对应的程序,用grep管道可以过滤出想要的字段 -a :all,表示列出所有的连接,服务监听,Socket资料 -t :tcp,列出tcp协议的服务 -u :udp,列出udp协议的服务 -n :port number, 用端口号

    2024年02月13日
    浏览(33)
  • Linux查看进程PID的方法?

    在Linux系统中,进程是指正在运行的程序。每个进程都有一个唯一的进程 ID(PID),可以用来识别和管理它们。 以下是查看进程 PID 的几种方法: 使用 ps 命令查看进程 PID: ps 命令可以列出当前正在运行的进程信息,包括进程名、PID、状态等。可以使用以下命令来查看进程

    2024年02月10日
    浏览(32)
  • Linux学习之端口、网络协议及查看端口占用情况(学习内容记录)

    端口 :设备与外界通讯交流的出口 网络协议: 网络协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。 HTTP协议: HTTP协议 (超文本传输协议)是一种网络通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。默认

    2023年04月24日
    浏览(38)
  • 23.Linux查看系统进程

    在 Linux 中,您可以使用 ps 命令来查看系统进程。下面是一些常用选项和示例: ps aux :显示当前所有进程的详细信息,包括所有用户的进程。 示例输出: 以上示例输出显示了进程的用户、进程ID(PID)、CPU占比(%CPU)、内存占比(%MEM)、虚拟内存大小(VSZ)、常驻内存集大

    2024年02月16日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包