Linux如何管理系统网络端口_Linuxnetstat与ss使用

推荐优先使用ss工具查看网络端口,因其基于netlink接口,比依赖/proc/net的netstat更快更高效;ss支持灵活过滤语法,适合高并发环境,而netstat因兼容性仍被使用但逐渐被取代。

Linux如何管理系统网络端口_Linuxnetstat与ss使用

在Linux系统中,管理网络端口是日常运维的重要任务之一。通过查看开放的端口、连接状态和服务监听情况,可以快速排查网络问题、诊断服务异常或识别潜在的安全风险。常用的两个工具netstatss,它们都能显示套接字(socket)信息,但各有特点。

netstat:经典网络状态查看工具

netstat(network statistics)是一个传统的命令行工具,用于显示网络连接、路由表、接口统计等信息。尽管在较新的系统中逐渐被 ss 取代,但因其广泛兼容性仍被普遍使用。

常用选项:

  • netstat -tuln:列出当前正在监听的 TCP 和 UDP 端口
  • -t 显示 TCP 连接
  • -u 显示 UDP 连接
  • -l 仅显示监听中的服务
  • -n 以数字形式显示地址和端口号(不解析主机名或服务名)
  • netstat -anp | grep :80:查找与80端口相关的所有连接及其进程

其中 -p 参数可显示关联的进程ID和程序名,但需要 root 权限才能看到所有进程。

ss:更高效的现代替代工具

ss(Socket Statistics)是较新的工具,设计用于取代 netstat。它直接从内核获取信息,因此速度更快、资源占用更低,尤其适合高并发环境。

常见用法:

  • ss -tuln:与 netstat -tuln 功能相同,列出监听的 TCP/UDP 端口
  • ss -tnlp:显示 TCP 监听端口及对应进程(需权限)
  • ss -s:简要统计当前套接字使用情况
  • ss -o:显示 TCP 连接的计时器信息(如重传时间)
  • ss dst 192.168.1.100:过滤目标地址为指定 IP 的连接

ss 支持更灵活的过滤语法,例如使用表达式筛选特定状态的连接:
ss '( dport = :80 or dport = :443 )' 查看目的端口为80或443的连接。

Linux如何管理系统网络端口_Linuxnetstat与ss使用

闪念贝壳

闪念贝壳是一款AI 驱动的智能语音笔记,随时随地用语音记录你的每一个想法。

Linux如何管理系统网络端口_Linuxnetstat与ss使用 218

查看详情 Linux如何管理系统网络端口_Linuxnetstat与ss使用

如何选择 netstat 与 ss

虽然两者功能相似,但推荐优先使用 ss,特别是在性能敏感或生产环境中。netstat 依赖过时的 /proc/net 文件系统接口,而 ss 使用更底层的 netlink 接口,响应更快,输出更精确。

若系统中没有安装 netstat,可能是因为所属的 net-tools 包未默认安装(如某些精简版 CentOS 或 Ubuntu)。可通过以下命令安装:

  • Ubuntu/Debian: sudo apt install net-tools
  • CentOS/RHEL: sudo yum install net-toolssudo dnf install net-tools

ss 则包含在 iproute2 软件包中,现代发行版通常已预装。

基本上就这些。掌握 netstat 和 ss 的基本用法,能帮助你快速了解系统网络状态,定位服务是否正常监听、是否有异常连接等问题。日常建议多用 ss,熟悉其语法后效率更高。