侧边栏壁纸
博主头像
colo

欲买桂花同载酒

  • 累计撰写 1824 篇文章
  • 累计收到 0 条评论

如何查看Linux系统中正在监听的网络端口?

2025-12-12 / 0 评论 / 4 阅读

题目

如何查看Linux系统中正在监听的网络端口?

信息

  • 类型:问答
  • 难度:⭐

考点

网络管理, netstat命令, ss命令, 端口监听

快速回答

在Linux中查看监听端口的常用方法:

  • 使用 netstat -tuln 命令
  • 使用更高效的 ss -tuln 命令
  • 通过 grep LISTEN 过滤监听状态
## 解析

原理说明

Linux系统中,服务进程通过绑定端口提供网络服务。监听端口(LISTEN)表示该端口正在等待客户端连接。查看这些端口是系统管理的基础操作,涉及网络配置和故障排查。

命令使用示例

1. netstat 命令(传统工具)

# 查看所有TCP/UDP监听端口
netstat -tuln | grep LISTEN

# 输出示例:
# tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
# tcp6       0      0 :::80                   :::*                    LISTEN
  • -t:显示TCP端口
  • -u:显示UDP端口
  • -l:仅显示监听端口
  • -n:禁用域名解析(加快速度)

2. ss 命令(推荐替代方案)

# 查看所有TCP/UDP监听端口
ss -tuln | grep LISTEN

# 输出示例:
# tcp   LISTEN 0      128          0.0.0.0:22          0.0.0.0:*
# tcp   LISTEN 0      128             [::]:80             [::]:*
  • ss 比 netstat 更快更高效(直接读取内核信息)
  • 参数含义与 netstat 一致

最佳实践

  • 优先使用 ss 命令:性能更好,新系统默认安装
  • 组合过滤ss -tln 仅查看TCP监听(省略UDP)
  • 查看进程sudo ss -tulnp 显示占用端口的进程ID(需root权限)

常见错误

  • ❌ 忘记 -n 参数:导致反向域名解析,降低速度
  • ❌ 混淆 -t-u:TCP和UDP端口需分开查看
  • ❌ 权限不足:查看进程信息需要 sudo

扩展知识

  • 端口状态含义
    LISTEN(监听) / ESTABLISHED(已连接) / TIME_WAIT(等待关闭)
  • 相关文件
    /etc/services 记录端口与服务的映射关系
  • 防火墙影响
    即使服务监听端口,防火墙规则可能阻止访问
  • 替代工具
    lsof -i -P -n | grep LISTEN 也可查看监听端口