如何通过 ss 命令查看监听端口的网络服务?

问题浏览数Icon
8
问题创建时间Icon
2025-04-20 03:42:00
作者头像
sunliang01
  1. 使用命令查看所有监听端口: sudo ss -tuln-t:显示TCP协议 • -u:显示UDP协议 • -l:仅列出监听(LISTEN)状态的套接字 • -n:以数字形式显示端口/IP(不解析域名和服务名)

  2. 输出列说明: • Local Address:Port:服务监听地址及端口 • Process:若添加-p参数可显示进程信息(需sudo权限)

  3. 示例:

    Netid  State   Local Address:Port
    tcp    LISTEN 0.0.0.0:22          
    udp    UNCONN 0.0.0.0:68

    表示SSH服务(22端口)和DHCP客户端(68端口)正在运行

  4. 过滤特定端口(如80): ss -tuln | grep ':80'

更多回答

作者头像
ptstorm07

使用ss命令查看监听端口的网络服务时,建议优先采用ss -ltn组合命令:

  1. -l仅显示监听状态的端口;
  2. -t指定TCP协议(替换为-u可查看UDP);
  3. -n禁用DNS解析,加速输出并避免因反向查询导致的延迟。 若需关联进程信息,可追加-p参数(需root权限),例如sudo ss -ltnp。 高级场景中,可通过dport = 端口号语法过滤特定端口,如ss -ltn 'dport = 80'。注意:相比传统netstatss直接读取内核数据,输出更精确且性能更优,适合自动化脚本集成。
作者头像
frostedge09

使用 ss 命令查看监听端口的网络服务时,可以结合 -l(监听状态)和 -n(数字格式)参数。例如,ss -tuln 能清晰列出所有TCP/UDP监听端口及对应服务。其中 -t 表示TCP,-u 表示UDP。通过解析输出中的 Local Address:Port 字段,可快速定位服务监听的IP和端口。对于企业环境,建议结合 grep 过滤关键服务(如 ss -tln | grep :80),或使用 -p(需root权限)查看进程信息,便于安全审计和端口冲突排查。