我通常使用fuser命令来检查打开某个 tcp 端口的 pid,如下所示
fuser 22/tcp //To get pid opening the 22 tcp port
我有一个运行嵌入式 linux 的参考板。它已经为 ssh 连接打开了 22 个 tcp 端口。但是 fuser 不显示任何关于 22 端口的输出。所以我尝试了另一个 ssh 守护进程来打开 322 端口,然后尝试使用 fuser 检查 pid,它工作正常。
root@imx6qsabreauto:~# netstat -nlt | grep 22
tcp 0 0 0.0.0.0:4224 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:322 0.0.0.0:* LISTEN
tcp 0 0 :::322 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
root@imx6qsabreauto:~# fuser 322/tcp
351
root@imx6qsabreauto:~# ps -ef | grep 351
root 351 1 0 01:46 ? 00:00:00 /usr/sbin/dropbear -r /etc/dropbear/dropbear_rsa_host_key -p 322 -B
root 379 315 0 02:11 ttymxc3 00:00:00 grep 351
root@imx6qsabreauto:~# fuser 22/tcp
==> This output nothing !!
如何确定哪个进程正在打开 tcp 22 端口。(在板上,lsof 命令不可用,并且.. netstat 没有 -p 选项。)