定位某个进程的网络故障时经常需要用到的一个功能就是查找所有连接的信息,通常查找某个端口的连接信息使用 ss 或者 netstat,如果是主动与其他服务器建立的连接信息则可以通过 lsof 命令查看。 一、指定进程连接例如想要查看进程 frps 当前的所有连接信息,则先获得进程的 pid: 可以看到进程 pid 为 4721,然后通过 lsof 命令查看所有 TCP 连接信息: 从 lsof 的输出结果中可以清楚的看到 frps 进程监听了 5 个端口,并且在 7000 端口上建立了 3 个连接,连接两端的 ip 信息也都可以查到。 lsof 的 -nP 参数用于将 ip 地址和端口号显示为正常的数值类型,否则可能会用别名显示。 如果提示 那么安装下 lsof 即可(一般出现在 CentOS): 二、指定端口连接Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等,功能强大。 常见参数:
提示:LISTEN 和LISTENING 的状态只有用 -a 或者 -l 才能看到 常用命令组合如下: 可以看到系统监听了 22 和 666 端口,并与 104.18.38.114 产生了外网连接,也可以看到与 104.18.38.114 产生连接的是 Python,进程 ID 是 1173。 同样的,如果出现 那么安装一下软件包即可(主要出现在 CentOS7) 参考文章: |