12月 052019
 

MacOS下命令行查询网络端口占用情况(进程号等)

1. netstat命令
[[email protected] centos]# netstat -an | grep 8889
tcp 0 0 0.0.0.0:8889 0.0.0.0:* LISTEN
tcp6 0 0 :::8889 :::* LISTEN
8889即查询的端口号,替换成自己需要查询的端口号

但是 OS X 的 netstat 不能查看使用端口的程序名,建议使用 lsof 代替 netstat 进行查看

2.lsof命令
通过lsof(list open file)命令可以查看到当前打开文件,在linux(mac os内核也基于unix)中所有事物都是以文件形式存在,包括网络连接及硬件设备。
-n 表示不显示主机名
-P 表示不显示端口俗称
非root用户(不加sudo运行命令)下运行,只能查看以当前用户运行的程序,

[[email protected] centos]# lsof -i:8889 -P -n
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 24433 root 4u IPv6 146243463 0t0 TCP *:8889 (LISTEN)
python 24433 root 6u IPv4 146243464 0t0 TCP *:8889 (LISTEN)

-i参数表示网络链接,:8999指明端口号,该命令会同时列出PID

举例:
查看所有进程监听的端口
sudo lsof -i -P | grep -i “listen”
sudo lsof -nP -iTCP -sTCP:LISTEN

Sorry, the comment form is closed at this time.