插件窝 干货文章 linux查看进程端口

linux查看进程端口

端口 进程 显示 sudo 53    来源:    2025-04-05

在Linux系统中,查看进程占用的端口可以通过以下几种方法实现:


方法1:使用 netstat 命令

sudo netstat -tulnp
  • 参数说明
    • -t:显示TCP端口
    • -u:显示UDP端口
    • -l:仅显示监听中的端口
    • -n:以数字形式显示地址和端口(不解析域名和服务名)
    • -p:显示进程名和PID(需要sudo权限)

输出示例

Proto Recv-Q Send-Q Local Address  Foreign Address  State       PID/Program name
tcp        0      0 0.0.0.0:22     0.0.0.0:*        LISTEN      1234/sshd

方法2:使用 ss 命令(推荐,更高效)

sudo ss -tulnp
  • 参数与 netstat 类似,但性能更高(ssnetstat 的现代替代工具)。

方法3:通过进程名或PID查找端口

1. 先根据进程名获取PID:

pgrep nginx  # 示例:查找Nginx的PID

pidof nginx

2. 再通过PID查看端口:

sudo ss -lntp | grep "pid=1234"  # 替换1234为实际PID

方法4:使用 lsof 命令

sudo lsof -i -P -n | grep LISTEN
  • 参数说明
    • -i:显示网络连接
    • -P:禁用端口别名(直接显示数字端口)
    • -n:禁用域名解析(显示IP地址)

输出示例

nginx   1234 root    6u  IPv4 0xabc123   0t0  TCP *:80 (LISTEN)

方法5:查看特定端口的进程

sudo lsof -i :22  # 查看占用22端口的进程

sudo ss -ltnp 'sport = :22'

注意事项

  1. 权限问题:查看系统级进程的端口需要 sudo 权限。
  2. 如果命令不存在:安装对应工具:
    • Debian/Ubuntu: sudo apt install net-tools lsof
    • CentOS/RHEL: sudo yum install net-tools lsof

总结

  • 快速查看所有监听端口ss -tulnp
  • 通过进程名查端口ss -lntp | grep <进程名>
  • 通过端口查进程lsof -i :<端口号>

根据需求选择最适合的方法即可!