在Linux和Unix-like系统中,运行命令查看网络状态是系统管理员和开发人员日常运维的重要技能,通过命令行工具,可以快速诊断网络连接、监控流量、排查故障等,以下是常用的网络状态查看命令及其详细用法。

ifconfig命令用于显示或配置网络接口信息,在较新的Linux发行版中,ifconfig已被ip命令取代,但部分系统仍支持。ifconfig -a会显示所有网络接口的详细信息,包括IP地址、子网掩码、MAC地址等,若需查看特定接口,可使用ifconfig eth0(假设接口名为eth0)。ifconfig还能临时修改接口状态,如ifconfig eth0 up启用接口。
ip命令是更现代的网络工具,功能更全面,使用ip addr show可查看所有接口的IP地址配置,ip link show则显示接口的链路状态(如是否启用)。ip route命令用于显示路由表,帮助理解数据包的转发路径;ip neigh show可查看ARP缓存,即局域网内其他设备的IP与MAC地址映射。
对于网络连接状态,netstat和ss是常用工具。netstat -tuln显示所有监听的TCP和UDP端口,-t表示TCP,-u表示UDP,-l表示仅显示监听端口,-n以数字形式显示地址(避免DNS解析)。netstat -an则显示所有连接(包括监听和已建立的),-a表示所有连接。ss命令是netstat的替代品,速度更快,语法类似,如ss -tuln同样显示监听端口。
ping命令用于测试网络连通性,通过发送ICMP回显请求检测目标主机是否可达。ping 8.8.8.8会持续向Google DNS发送请求,显示往返时间和丢包率。ping -c 4 8.8.8.8可限制发送4个包后退出。traceroute或tracert(Windows)用于显示数据包到目标主机的路径,经过的路由器及延迟,有助于定位网络瓶颈。

lsof命令可查看端口被哪个进程占用,如lsof -i :80显示占用80端口的进程。tcpdump是强大的网络抓包工具,tcpdump -i eth0监听eth0接口的所有流量,tcpdump host 192.168.1.1仅抓取与特定主机通信的数据包。
以下是常用命令的对比表格:
| 命令 | 主要功能 | 常用选项示例 |
|---|---|---|
ifconfig |
显示/配置网络接口 | ifconfig -a, ifconfig eth0 up |
ip |
显示/管理网络接口、路由等 | ip addr show, ip route, ip neigh |
netstat |
显示网络连接、路由表、端口等 | netstat -tuln, netstat -an |
ss |
显示网络连接(比netstat更快) | ss -tuln, ss -an |
ping |
测试网络连通性 | ping 8.8.8.8, ping -c 4 8.8.8.8 |
traceroute |
显示数据包传输路径 | traceroute 8.8.8.8 |
lsof |
查看端口占用进程 | lsof -i :80 |
tcpdump |
抓取网络数据包 | tcpdump -i eth0, tcpdump host IP |
相关问答FAQs:
Q1: 如何查看当前系统所有活跃的网络连接?
A1: 使用ss -an或netstat -an命令可查看所有活跃的网络连接,包括TCP、UDP以及UNIX域套接字。-a表示显示所有连接,-n以数字形式显示地址和端口,避免DNS解析延迟,若需仅显示TCP连接,可用ss -t -an或netstat -t -an。

Q2: 如何定位占用特定端口的进程?
A2: 使用lsof -i :端口号命令,例如lsof -i :8080可查看占用8080端口的进程,若需终止该进程,可先记录其PID(进程ID),然后使用kill -9 PID强制终止,在Linux中,netstat -tulnp | grep :端口号也可实现类似功能,其中-p显示进程ID。
