检查进程使用网络端口

检查进程使用的网络端口可以使用如下命令

  • netstat

  • fuser

  • lsof

  • /proc/$pid/ 文件系统

netstat案例

netstat -tulpn

输出

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:19211               0.0.0.0:*                   LISTEN      22875/java
tcp        0      0 0.0.0.0:19212               0.0.0.0:*                   LISTEN      22875/java
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      991/rpcbind
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      12455/nginx
...

如果要检查具体的程序路径,例如想知道12455进程的运行程序指令,可以使用命令

ls -l /proc/12455/exe

输出显示进程对应的指令

fuser案例

fuser可以检查具体的端口,例如

输出显示进程pid

同样可以ls -l /proc/15535/exe检查具体进程的路径

有一个pwdx命令还可以检查进程的工作目录

等同于 ls -l /proc/15535/cwd

找出进程的属主,启动时间等

输出显示

进程的environ提供了详细的信息,也包含了用户,及路径等等

或者

lsof案例

这里 lsof -i :portNumber 可以显示双向的端口连接

执行lsof需要root权限,否则无法显示非自己属主的进程的端口使用

案例

参考

Last updated