查看linux中某个端口(port)是否被占用(netstat,lsof)

查看linux中某个端口(port)是否被占用(netstat,lsof)

netstat命令可以显示网络连接,路由表,接口状态,伪装连接,网络链路信息和组播成员组等信息。
命令格式:netstat [选项]
常用参数:
-a, --all 显示所有正在或不在侦听的套接字。
-p, --program 显示套接字所属进程的PID和名称。
-n, --numeric 显示数字形式地址而不是去解析主机、端口或用户名。
用法示例:查看所有的进程和端口使用情况。
$ netstat –anp
进一步可以使用lsof命令显示占用该端口的进程情况 。
命令格式:lsof -i :端口 

netstat -tunlp 会显示所有端口和所有对应的程序,用grep管道可以过滤出想要的关键字段.
列一下22端口占用的程序

[root@leiwan tmp]# netstat -tunlp |grep 22
tcp 0 0 0.0.0.0:42957 0.0.0.0:* LISTEN 2230/rpc.statd 
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2443/sshd 
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2292/cupsd 
tcp 0 0 :::22 :::* LISTEN 2443/sshd 
tcp 0 0 ::1:631 :::* LISTEN 2292/cupsd 
tcp 0 0 :::57609 :::* LISTEN 2230/rpc.statd 
udp 0 0 0.0.0.0:5353 0.0.0.0:* 2211/avahi-daemon 
udp 0 0 0.0.0.0:631 0.0.0.0:* 2292/cupsd 
udp 0 0 0.0.0.0:37167 0.0.0.0:* 2230/rpc.statd 
udp 0 0 0.0.0.0:52291 0.0.0.0:* 2211/avahi-daemon 
udp 0 0 0.0.0.0:68 0.0.0.0:* 2207/dhclient 
udp 0 0 0.0.0.0:710 0.0.0.0:* 2230/rpc.statd 
udp 0 0 :::39834 :::* 2230/rpc.statd

 

查看某一端口的占用情况: lsof -i:端口号

[root@www ~]# lsof -i:21
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
pure-ftpd 2651 root 4u IPv4 7047 TCP *:ftp (LISTEN)
pure-ftpd 2651 root 5u IPv6 7048 TCP *:ftp (LISTEN)

这里显示出21号端口正在被pure-ftpd使用,状态是listen。


netstat -anp 显示系统端口使用情况

原文地址:https://www.cnblogs.com/wuxiang/p/5121798.html