netstat 是 linux 系统中用于查看网络连接状态的常用工具,其基本用法包括:1. 查看所有活跃连接使用 netstat -tuln;2. 查看特定协议连接如 tcp 用 netstat -tl、udp 用 netstat -ul;3. 显示进程信息需加 -p 参数并配合 sudo;4. 使用 netstat -s 可查看详细的网络统计信息。掌握这些命令可有效排查网络问题和监控服务运行。
在linux系统中,查看网络连接状态是排查网络问题、监控服务运行情况的常见操作。netstat 是一个非常实用的命令行工具,可以用来显示网络连接、路由表、接口统计信息等。虽然现在有些发行版默认不安装 netstat(被 ss 命令取代的趋势),但如果你还在使用它或想快速掌握基本用法,这篇文章能帮你快速上手。
查看所有活跃的网络连接
最常用的命令之一就是查看当前所有的活动网络连接:
netstat -tuln
- -t:表示 TCP 协议
- -u:表示 UDP 协议
- -l:列出监听中的连接(LISTEN 状态)
- -n:以数字形式显示地址和端口号(不进行 DNS 解析)
这个命令会输出类似下面的内容:
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp6 0 0 :::80 :::* LISTEN udp 0 0 0.0.0.0:5353 0.0.0.0:*
你可以看到哪些端口正在监听,比如 ssh(22)、http(80)等。如果发现你不熟悉的端口在监听,可能需要进一步检查安全性。
查看特定协议的连接(TCP 或 UDP)
如果你想只关注某一种协议,比如 TCP:
netstat -tl
或者 UDP:
netstat -ul
这样可以减少干扰,更容易定位问题。例如,DNS 查询通常是基于 UDP 的,所以查看 UDP 连接时可能会看到 53 端口相关的信息。
显示进程信息(结合权限)
有时候你不仅想知道哪个端口在监听,还想了解是哪个程序在使用它。这时候可以用:
sudo netstat -tulnp
- -p:显示进程 ID 和名称(需要 root 权限)
输出示例:
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
通过这种方式,你可以知道某个服务是否正常启动,或者是否有异常进程占用了关键端口。
检查连接状态和统计信息
除了查看连接本身,你还可以查看网络连接的状态统计:
netstat -s
这会显示 TCP、UDP、IP 等协议的详细统计数据,比如收到的数据包数量、丢包情况等。适合用于分析网络性能或排查潜在问题。
总的来说,netstat 是个简单但功能强大的工具,虽然现在很多系统开始推荐使用 ss 或 ip 命令替代它,但在排查网络连接问题时,它的直观性还是很有帮助的。只要记住几个常用参数组合,就能快速定位大部分基础问题。
基本上就这些,熟练之后几分钟就能搞定一次全面的网络连接检查。