在 Linux 中查看处于半连接(SYN_RECV)状态的连接及其对应进程,可以使用以下几种方法:
netstat -tunap | grep SYN_RECV | awk '{print $7}' | cut -d'/' -f1 | xargs -I{} ps -p {} -o pid,cmd
或者使用更现代的 ss 命令:
ss -tunap state syn-recv | awk '{print $6}' | cut -d':' -f2 | cut -d'/' -f1 | xargs -I{} ps -p {} -o pid,cmd
sudo lsof -iTCP -sTCP:SYN_RECV
sudo netstat -tulnp | grep SYN_RECV
sudo conntrack -L | grep SYN_RECV
SYN_RECV 状态表示服务器已经收到客户端的 SYN 包并发送了 SYN-ACK 包,正在等待客户端的 ACK 完成三次握手。
这些命令会显示:
需要 root 权限才能查看所有进程的网络连接信息。
net.ipv4.tcp_synack_retries