我通常使用定影命令檢查PID打開某些TCP端口像以下如何確定哪個進程正在打開某個TCP端口?
fuser 22/tcp //To get pid opening the 22 tcp port
我有一個基準板,其上運行的嵌入式Linux。 它已經爲ssh連接打開了22個tcp端口。 但fuser不顯示關於22端口的任何輸出。 所以我嘗試了另一個ssh守護進程來打開322端口,然後試圖檢查使用fuser pid,它工作正常。
[email protected]:~# 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
[email protected]:~# fuser 322/tcp
351
[email protected]:~# 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
[email protected]:~# fuser 22/tcp
==> This output nothing !!
如何確定哪個進程正在打開tcp 22端口。 (中板,lsof的命令不可用和netstat的..沒有-p選項。)