网络连接状态查看
在Linux系统中,掌握网络连接状态是排查网络问题的基础。netstat和ss是两个核心命令,其中ss因高效已成为现代Linux系统的首选。

使用ss -tuln可查看所有监听的TCP(-t)和UDP(-u)端口,并显示端口号(-n避免域名解析,加快速度)。ss -tuln | grep :80能快速定位Web服务是否正常监听80端口,若需查看详细的连接状态(如ESTABLISHED、TIME_WAIT等),可执行ss -tan,其中-a表示显示所有连接。
netstat虽逐渐被ss替代,但在旧系统中仍常用,其基础用法与ss类似,如netstat -tuln查看监听端口,netstat -an查看所有连接。netstat -s可汇总网络协议统计信息,便于分析丢包、重传等问题。
网络连通性测试
测试网络连通性是日常运维的高频操作,ping和traceroute(或traceroute6)是必备工具。
ping通过发送ICMP回显请求测试目标主机可达性。ping -c 4 baidu.com向百度发送4个数据包,输出中包含往返时间(RTT)和丢包率,若网络延迟异常,可通过ping -i 0.2(间隔0.2秒发送)快速检测稳定性,或ping -s 1472(设置数据包大小)测试MTU(最大传输单元)是否合理。
traceroute则能追踪数据包到目标主机的路径,默认使用ICMP协议,traceroute -T改用TCP,traceroute -U使用UDP。traceroute -T -p 80 baidu.com可追踪到百度80端口的TCP路径,中途若某跳无响应,结合ping该IP可快速定位故障节点。
网络数据抓包与分析
当网络出现异常延迟、丢包或连接超时,数据抓包是深入分析的有效手段。tcpdump作为Linux下最强大的抓包工具,支持按协议、端口、IP等条件过滤。

基础用法中,tcpdump -i eth0抓取eth0网卡的所有数据包,tcpdump -nn -i eth0 port 80则只抓取80端口的流量(-n避免解析域名和端口名),若需保存抓包结果,tcpdump -i eth0 -w capture.pcap将数据包写入文件,后续可用Wireshark打开分析。
对于更复杂的场景,可结合tcpdump host 192.168.1.1 and tcp port 22抓取特定主机与22端口的交互,或tcpdump -v显示更详细的包信息(如TCP标志位、序列号等)。
路由与DNS配置排查
网络路由错误或DNS解析失败是常见问题,需通过ip route、route及dig、nslookup等命令定位。
查看路由表使用ip route show或简写ip r,例如ip r | default可快速定位默认网关,若需临时添加路由,ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0表示访问192.168.2.0/24网段通过192.168.1.1(旧系统用route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1)。
DNS解析问题可通过dig www.baidu.com排查,其输出显示查询过程、权威服务器及应答记录,比nslookup更详细。dig +short www.baidu.com仅返回IP地址,适合脚本调用;dig www.baidu.com any则查询所有记录类型(A、MX、NS等)。
网络服务与进程管理
定位占用端口的进程是服务配置的关键,lsof和netstat(结合grep)可高效完成。

lsof -i :80直接查看80端口被哪个进程占用,输出包含PID、用户及进程名,若需终止进程,kill -9 <PID>强制结束(谨慎使用)。netstat -tulnp也可实现类似功能,-p显示进程ID和名称,例如netstat -tulnp | grep :3306定位MySQL服务端口占用情况。
ss -ltpn同样可查看监听端口的进程信息,且性能更优,对于活跃连接,ss -tpn 'dst :80'能查看所有访问80端口的客户端IP及进程。
Linux常用网络命令覆盖了从基础连通性测试到深度数据抓包的全场景需求,熟练掌握ss、tcpdump、dig等工具,并结合grep、awk等命令组合,可快速定位网络故障、优化服务配置,在实际操作中,需注意命令参数的灵活性(如tcpdump的过滤条件、dig的查询选项),并通过man命令查阅手册细节,以应对复杂的网络环境。




















