天天看点

linux查看udp端口占用命令,详解Linux查看端口占用「建议收藏」

大家好,又见面了,我是你们的朋友全栈君。

在使用计算机的过程中,有时会碰到端口被占用的情况,这时候需要查看端口占用情况进行问题排查。在linux系统中,端口占用的情况也时有发生,一般情况下可以使用lsof和netstat两个命令来查看端口占用情况。

下面我们就分别介绍Linux查看端口占用用到的lsof和netstat命令:

1、lsof命令

lsof(list open files)命令功能:列出当前系统打开文件。在linux系统中,一切皆文件,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。像TCP、UDP 套接字等,系统中都存在对应的文件描述符,该文件描述符为应用程序与操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof命令可以查看这个列表对系统进行监测。

查看某个端口的占用情况使用命令:

lsof -i:port,比如查看9090端口使用情况:lsof -i:9090。

# lsof -i:9090

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

Thriftc 32551 root 6u IPv6 23200961 0t0 TCP *:websm (LISTEN)

lsof命令参数:

-a:列出打开文件存在的进程;

-c:列出指定进程所打开的文件;

-g:列出GID号进程详情;

-d:列出占用该文件号的进程;

+d:列出目录下被打开的文件;

+D:递归列出目录下被打开的文件;

-n:列出使用NFS的文件;

-i:列出符合条件的进程。(4、6、协议、:端口、 @ip )

-p:列出指定进程号所打开的文件;

-u:列出UID号进程详情;

-h:显示帮助信息;

-v:显示版本信息。

2、netstat命令

Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。因此可以使用netstat命令查看系统中端口占用情况。

查看指定端口号的进程情况使用命令:netstat -tunlp | grep port,比如查看9090端口的进程:netstat -tunlp | grep 9090。

# netstat -tunlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:34797 0.0.0.0:* LISTEN 1554/rpc.statd

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1497/rpcbind

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 31165/nginx

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1988/sshd

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2102/master

tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 31165/nginx

tcp 0 0 :::9090 :::* LISTEN 32551/./Thriftc

tcp 0 0 :::53705 :::* LISTEN 1554/rpc.statd

tcp 0 0 :::111 :::* LISTEN 1497/rpcbind

tcp 0 0 :::22 :::* LISTEN 1988/sshd

tcp 0 0 ::1:25 :::* LISTEN 2102/master

udp 0 0 0.0.0.0:111 0.0.0.0:* 1497/rpcbind

udp 0 0 127.0.0.1:882 0.0.0.0:* 1554/rpc.statd

udp 0 0 192.168.0.16:123 0.0.0.0:* 2013/ntpd

udp 0 0 127.0.0.1:123 0.0.0.0:* 2013/ntpd

udp 0 0 0.0.0.0:123 0.0.0.0:* 2013/ntpd

udp 0 0 0.0.0.0:48037 0.0.0.0:* 1554/rpc.statd

udp 0 0 0.0.0.0:824 0.0.0.0:* 1497/rpcbind

udp 0 0 0.0.0.0:68 0.0.0.0:* 1585/dhclient

udp 0 0 :::33758 :::* 1554/rpc.statd

udp 0 0 :::111 :::* 1497/rpcbind

udp 0 0 fe80::f816:3eff:fe49:fae:123 :::* 2013/ntpd

udp 0 0 ::1:123 :::* 2013/ntpd

udp 0 0 :::123 :::* 2013/ntpd

udp 0 0 :::824 :::* 1497/rpcbind

# netstat -tunlp | grep 9090

tcp 0 0 :::9090 :::* LISTEN 32551/./Thriftc

netstat命令参数:

-a (all)  显示所有连线中的Socket

-t (tcp)  仅显示tcp相关选项

-u (udp)  仅显示udp相关选项

-n     拒绝显示别名,能显示数字的全部转化成数字。

-l      仅列出有在 Listen (监听) 的服務状态

-p     显示建立相关链接的程序名

-r      显示路由信息,路由表

-e     显示扩展信息,例如uid等

-s     按各个协议进行统计

-c     每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

linux查看端口占用一直是使用操作系统的过程中容易遇见的问题,我们很难避免这样的情况发生,只有采取相应的措施,查看端口占用的情况然后加以解决。在本站的Linux教程中有对端口占用的解决方案,感兴趣的小伙伴可以前去观看学习,通过实践操作检验方案的可行性。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164644.html原文链接:https://javaforall.cn