Linux命令行中netstat与ss命令的使用方法

ss比netstat更高效,推荐使用;两者用于查看网络连接、监听端口和进程信息,常用命令包括ss -a、ss -t、ss -l、ss -p及ss -tulnp组合。

Linux命令行中netstat与ss命令的使用方法

在Linux系统中,netstatss 是两个用于查看网络连接状态、端口监听情况和套接字信息的重要命令行工具。虽然功能相似,但ss 更现代、性能更高,推荐优先使用。下面分别介绍它们的基本用法。

查看所有活动连接

显示当前系统中所有的TCP、UDP连接以及监听端口:

  • netstat -a
  • ss -a

这两个命令会列出所有活跃的网络连接,包括正在监听的服务和已建立的连接。

查看TCP和UDP连接

若只想查看特定协议的连接,可以使用以下命令:

  • netstat -t # 仅显示TCP连接
  • netstat -u # 仅显示UDP连接
  • ss -t # ss查看TCP连接
  • ss -u # ss查看UDP连接

结合 -a 参数可同时包含监听和非监听状态的连接,例如 ss -at 显示所有TCP连接。

显示监听端口

查看哪些端口正在等待外部连接(即服务监听状态):

  • netstat -l # 列出所有监听中的端口
  • netstat -tl # 只看TCP监听端口
  • netstat -ul # 只看UDP监听端口
  • ss -l # ss查看监听端口
  • ss -tl # ss查看TCP监听端口

通常用于检查Web服务器(80/443)、SSH(22)等服务是否正常启动并监听。

Linux命令行中netstat与ss命令的使用方法

阿里·犸良

一站式动效制作平台

Linux命令行中netstat与ss命令的使用方法52

查看详情 Linux命令行中netstat与ss命令的使用方法

显示进程信息与PID

要查看是哪个程序打开了某个网络连接,需要显示关联的进程信息:

  • netstat -p # 显示进程名和PID
  • ss -p # 同样显示进程信息

这个功能在排查可疑连接或确认服务归属时非常有用。注意:部分信息可能因权限不足而无法显示,建议使用 sudo 执行。

结合过滤查看特定连接

实际使用中,常配合 grep 进行筛选,例如查找所有SSH相关连接:

  • ss -t | grep :22
  • netstat -an | grep :80 # 查看HTTP连接

也可以使用 ss 的内置过滤功能:

  • ss dst 192.168.1.100 # 查看目标为该IP的连接
  • ss state established # 只显示已建立的连接
  • ss sport = :http # 源端口为80的连接

netstat 来自 net-tools 包,较老旧,在高负载系统中可能较慢;ss 属于 iproute2 套件,直接从内核获取信息,速度更快,功能更强大。现在很多发行版默认不再安装 netstat,建议掌握 ss 的使用。

基本上就这些。日常排查网络问题时,ss -tulnp 是一个非常实用的组合,能快速列出所有监听端口及对应进程。

linux 端口 工具 linux系统 linux命令 网络问题 ul http udp linux ssh

上一篇
下一篇