我通过 SSH 连接到虚拟机并查看/proc/<pid>/net/tcp
我的 zsh shell。我看到这条线
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
...
3: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 19127 1 0000000000000000 100 0 0 10 0
除非我误解了这是在说什么,否则 zsh 正在侦听端口 22。我知道 zsh 进程是运行 sshd 的进程的后代,但 sshd 在分叉后不会关闭侦听套接字吗?
它不是。相反,您错误地解释了显示的信息:
/proc/pid/net/
显示有关进程所在的完整名称空间的网络信息,即不仅是特定进程保持打开的连接。您可能想lsof -n -p pid
改用。