lsof -i 是用于查看进程网络连接状态的实用命令。1. 基本运行 lsof -i 可列出所有网络连接,显示进程名、pid、用户、协议、本地与远程地址等信息;2. 可通过 lsof -i tcp、lsof -i udp 查看特定协议连接,或使用 lsof -i :80、lsof -i :80-443 查看指定端口及范围的连接;3. 结合 pid 使用 lsof -i -p 1234 可查具体进程的连接情况,或用 lsof -i | grep nginx 过滤进程名;4. 通过分析连接状态如 listen、established、time_wait 等可识别潜在问题,结合其他工具进一步排查性能瓶颈或异常通信。
当你想查看某个进程的网络连接状态,或者排查服务器上有哪些程序在联网通信时,lsof -i 是一个非常实用的命令。它能帮你快速定位到哪些进程正在使用网络、连接了哪些IP和端口,甚至还能看到是TCP还是UDP协议。
运行 lsof -i 可以列出所有与网络相关的打开文件(Linux/Unix系统中,网络连接也被视为一种“打开的文件”)。输出内容通常包括进程名、PID、用户、协议类型、本地地址和远程地址等信息。
例如:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 1234 root 6u IPv4 12345 0t0 TCP *:http (LISTEN) curl 5678 user 3u IPv6 67890 0t0 TCP example.com:443 ESTABLISHED
这表示 nginx 正在监听 80 端口,而 curl 正在访问 example.com 的 443 端口。
如果你只想关注某个特定端口或协议(如 TCP 或 UDP),可以在 -i 后加参数:
查看 TCP 连接:
lsof -i TCP
查看 UDP 连接:
lsof -i UDP
查看指定端口的连接(比如 80 端口):
lsof -i :80
查看某个范围的端口(比如 80 到 443):
lsof -i :80-443
这些操作特别适合在排查服务是否正常监听端口,或者发现异常连接时使用。
如果你已经知道某个进程的 PID,可以通过下面命令只看它的网络连接情况:
lsof -i -p 1234
这样就能快速了解该进程都建立了哪些网络连接,有没有异常的对外通信。
有时候你可能不知道 PID,但知道进程名,比如你想查所有 nginx 的连接:
lsof -i | grep nginx
这样可以过滤出你要的信息。
lsof -i 输出中的最后一列显示的是连接状态,比如:
如果发现大量 TIME_WAIT 或者 CLOSE_WAIT 状态的连接,可能意味着你的应用存在连接未正确释放的问题,或者是高并发场景下资源回收不及时导致的瓶颈。
这时候就可以结合其他工具(如 netstat、ss)进一步分析。
基本上就这些。lsof -i 虽然简单,但很强大,在日常运维、调试、安全排查中都非常实用。掌握几个常用组合,基本就能应对大多数网络连接相关的问题了。
以上就是如何查看进程网络连接 lsof -i网络诊断技巧的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号