在Linux系统中,查看网络状态是系统管理和故障排查的常见操作,掌握相关命令能够帮助用户高效监控网络连接、端口占用、路由表等信息,以下是常用的Linux查看网络状态的命令及其详细用法,涵盖不同场景下的需求。

ifconfig
和ip
命令用于查看和配置网络接口信息。ifconfig
是传统工具,通过ifconfig
或ifconfig -a
可显示所有网络接口的IP地址、子网掩码、MAC地址等状态,例如eth0
接口的UP
状态表示已启用,RUNNING
表示正在传输数据,而ip
命令是现代Linux系统推荐的工具,功能更强大,通过ip addr show
或ip a
可查看接口详细信息,包括IPv4/IPv6地址、MTU值等,ip link show
则专注于接口的链路状态,如是否启用(UP/DOWN
)和MAC地址。ip
命令还支持动态查看,如ip addr show eth0
仅查看指定接口。
netstat
和ss
命令用于监控网络连接、路由表和接口统计。netstat
是经典工具,通过netstat -an
可显示所有网络连接(-a
)并以数字形式展示地址和端口(-n
),避免DNS解析延迟;netstat -tuln
仅列出监听的TCP(-t
)和UDP(-u
)端口,-l
表示仅显示监听状态,而ss
是netstat
的替代品,性能更优,尤其在处理大量连接时,ss -tuln
功能与netstat -tuln
类似,但输出更简洁;ss -t
可显示TCP连接状态,如ESTABLISHED
(已建立连接)、LISTEN
(监听中)等,-p
参数可显示进程ID和名称,便于定位占用端口的程序。
对于路由表查看,route
和ip route
命令是常用工具。route -n
以数字形式显示路由表,包括目标网络、网关、接口等;ip route show
或ip r
提供更详细的输出,支持添加-4
或-6
参数筛选IPv4/IPv6路由,例如ip route show dev eth0
仅查看通过eth0
接口的路由。
ping
和traceroute
(或traceroute6
)用于测试网络连通性。ping [目标IP/域名]
通过发送ICMP回显请求测试与目标主机的连通性,-c
参数可指定发送包数量(如ping -c 4 8.8.8.8
);traceroute [目标IP/域名]
显示数据包到达目标主机的路径及每跳的延迟,-n
参数可避免DNS解析,直接显示IP地址。

网络接口流量统计可通过iftop
、nethogs
或ip -s link
实现。iftop
实时显示网络带宽使用情况,按IP或端口排序;nethogs
按进程显示网络带宽占用,适合定位高流量进程;ip -s link show eth0
可查看eth0
接口的接收(RX)和发送(TX)字节数、错误包数等统计信息。
以下是常用命令的对比总结:
命令 | 核心功能 | 常用参数示例 | 优势场景 |
---|---|---|---|
ip a |
查看接口IP地址 | ip addr show eth0 |
现代系统,支持IPv6 |
ifconfig |
传统接口信息查看 | ifconfig -a |
兼容旧系统 |
ss -tuln |
查看监听端口及连接状态 | ss -t -p (显示进程ID) |
高性能,替代netstat |
netstat -an |
显示所有网络连接 | netstat -rn (显示路由表) |
兼容性好,功能全面 |
ip route |
查看路由表 | ip route show default |
现代路由管理 |
ping |
测试网络连通性 | ping -c 3 192.168.1.1 |
快速检查网络可达性 |
iftop |
实时带宽监控 | iftop -i eth0 |
按IP/端口排序流量分析 |
相关问答FAQs
-
问:
ss
和netstat
有什么区别?哪个更适合使用?
答:ss
是netstat
的替代品,在处理大量连接时性能更优,输出信息更简洁,且默认显示进程ID(需-p
参数)。netstat
兼容性更好,适用于旧系统,推荐在Linux新版本中使用ss
,尤其是在高并发场景下,效率更高。(图片来源网络,侵删) -
问:如何查看某个端口被哪个进程占用?
答:使用ss -tulnp | grep [端口号]
或netstat -tulnp | grep [端口号]
,例如ss -tulnp | grep 8080
会显示占用8080端口的进程ID和名称,也可通过lsof -i :[端口号]
查看,lsof
会列出占用端口的进程详细信息。