有时候我们需要知道电脑中有哪些 进程/应用 正在使用哪个port,这时候就用到一个非常方便的指令:lsof
指令 lsof 是 list open files 的意思。在unix系统中,一切皆为文件,包括tcp/udp的连接。
例子: lsof -n -P -i TCP | grep LISTEN
flag:
-n 指用number代替字母显示
-P 特指 port 用数字而不用字母显示
-i 指 internet 相关的协议,此处我们指定 TCP
| grep LISTEN 在当前指令lsof -n -P -i TCP给出的所有结果中,搜索有 “LISTEN” 的结果
例如:

caoda1@CaoDas-MBP:~/Documents$ lsof -n -P -i TCP | grep LISTEN
pycharm     407 caoda1  143u  IPv4 0x15532e64ce8c66af      0t0  TCP 127.0.0.1:6942 (LISTEN)
pycharm     407 caoda1  222u  IPv4 0x15532e64d4531a8f      0t0  TCP 127.0.0.1:63342 (LISTEN)
rapportd    449 caoda1    3u  IPv4 0x15532e64ce3bd6af      0t0  TCP *:56197 (LISTEN)
rapportd    449 caoda1    4u  IPv6 0x15532e64ce3e5007      0t0  TCP *:56197 (LISTEN)
com.apple   631 caoda1   45u  IPv4 0x15532e64d9f7a6af      0t0  TCP *:60496 (LISTEN)
com.apple   631 caoda1   48u  IPv6 0x15532e64ce3e6147      0t0  TCP *:60497 (LISTEN)
mongod      673 caoda1    6u  IPv4 0x15532e64d1a763ef      0t0  TCP 127.0.0.1:27017 (LISTEN)
BlueJeans   695 caoda1    3u  IPv4 0x15532e64ce3bba8f      0t0  TCP 127.0.0.1:18171 (LISTEN)
Adobe\x20   831 caoda1   10u  IPv4 0x15532e64d453112f      0t0  TCP 127.0.0.1:15292 (LISTEN)
Avast\x20   849 caoda1    4u  IPv6 0x15532e64ce3e4a47      0t0  TCP *:27275 (LISTEN)
mysqld    39165 caoda1   28u  IPv4 0x15532e64fa16c6af      0t0  TCP 127.0.0.1:3306 (LISTEN)

我们可以看到:应用名称,进程id, ip地址和port number, 以及他们正在 LISTEN的状态
如果我只想知道 mysql 正在使用哪个port,只要:

caoda1@CaoDas-MBP:~/Documents$ lsof -n -P -i TCP | grep mysql
mysqld     887 caoda1   29u  IPv4 0x21154199f4055439      0t0  TCP 127.0.0.1:3306 (LISTEN)

我们可以清楚的看到mysql正在使用 3306 这个 port。


kid_learning
16 声望0 粉丝