在Linux的世界里,网络命令就像运维人员的“瑞士军刀”,无论你是需要快速定位网络故障、监控流量,还是优化网络配置,这些工具都能派上大用场。作为一名运维老兵,我深知网络问题可能让人抓狂——时而是丢包,时而是延迟,偶尔还有莫名其妙的断连。别慌!今天我将带你深入探索一系列Linux网络命令,它们不仅功能强大,还能让你在排查故障时游刃有余。这篇文章会尽量避免枯燥的技术术语,用通俗易懂的方式带你走进这些命令的硬核世界。准备好了吗?让我们开始吧!
1.ping:网络连通性的“敲门砖”
提到网络排查,ping绝对是绕不开的“老朋友”。它的作用很简单:测试你的主机和目标主机之间是否能正常通信。通过发送ICMP(互联网控制消息协议)请求并等待回复,ping能告诉你网络是否通畅,以及延迟多少。
基础用法
ping www.baidu.com
运行这个命令后,你会看到一行行输出,显示每次请求的响应时间(单位是毫秒)和TTL值(生存时间)。想停下来?按Ctrl+C,它会给你一个总结:发了几包、丢了几包,平均延迟是多少。
进阶玩法
- 限定包数:不想一直ping下去?用-c参数,比如ping -c 10 www.baidu.com,发10个包就停。
- 调整包大小:怀疑网络对大包处理不好?试试ping -s 1000 www.baidu.com,发送1000字节的包看看效果。
- 设置TTL:想测试特定跳数的连通性?用-t,如ping -t 50 www.baidu.com。
实战场景
假设你发现访问某个网站很慢,第一步就是ping一下它的域名。如果有响应但延迟很高,可能是网络拥堵;如果完全没反应,问题可能出在DNS或目标服务器挂了。
2.traceroute:追踪数据包的“旅行路线”
如果ping告诉你网络不通,但你还不清楚哪里出了问题,traceroute就能派上用场。它能展示数据包从你这里到目标主机的完整路径,告诉你每经过一个路由器的情况。
基础用法
traceroute www.baidu.com
输出会列出每一跳的IP地址和响应时间,通常最多30跳。如果某一行显示* * *,说明那个路由器没回应,可能是配置了防火墙。
进阶玩法
- 换协议:默认用UDP,但可以用-I切换到ICMP,如traceroute -I www.baidu.com。
- 指定端口:测试特定服务时,试试-p,比如traceroute -p 443 www.baidu.com(HTTPS端口)。
- 限制跳数:用-m,如traceroute -m 15 www.baidu.com。
实战场景
客户反馈“网站打不开”,你ping不通,那就用traceroute看看数据包走到哪一步断了。如果在第5跳开始全是星号,问题很可能出在那台路由器。
3.netstat:网络状态的“全景图”
netstat是个多面手,能显示网络连接、路由表和接口统计,是老派运维的必备工具。尽管它逐渐被更现代的命令取代,但熟悉它依然很有价值。
基础用法
netstat -tuln
这条命令列出所有监听中的TCP(-t)和UDP(-u)端口,-l表示只看监听状态,-n则避免解析域名,直接显示数字IP。
进阶玩法
- 查看所有连接:netstat -a,包括已建立的和监听的。
- 路由表:netstat -r,相当于route命令的输出。
- 查进程:netstat -p,告诉你哪个程序占用了端口。
实战场景
服务器被人投诉“端口被占”,跑个netstat -tuln看看80端口是不是被意外占用,再用-p揪出罪魁祸首。
4.ss:netstat的“升级版”
ss是netstat的接班人,速度更快,信息更丰富。它专注于socket统计,能让你快速掌握网络连接的细节。
基础用法
ss -tuln
和netstat -tuln一样,显示监听的TCP/UDP端口。
进阶玩法
- 只看TCP:ss -t,列出所有TCP连接。
- 过滤状态:ss -t state established,只看已建立的连接。
- 详细信息:加-e,显示扩展信息,比如socket选项。
实战场景
服务器响应变慢,怀疑连接数过多?用ss -t | wc -l统计当前TCP连接数,再结合-p找出占用最多的进程。
5.tcpdump:网络流量的“显微镜”
如果前面命令还不够深入,tcpdump可以直接抓包,让你看到网络数据的“真面目”。它适合分析复杂问题,比如丢包、协议异常等。
基础用法
tcpdump -i eth0
抓取eth0接口的所有流量,输出包括时间戳、源IP、目标IP和协议信息。
进阶玩法
- 指定主机:tcpdump host 192.168.1.100,只看这个IP的流量。
- 指定端口:tcpdump port 80,专注HTTP流量。
- 保存文件:tcpdump -w capture.pcap,存下来用Wireshark分析。
实战场景
用户说“上传文件总失败”,用tcpdump port 21抓FTP流量,看看是不是有异常重传或超时。
6.iftop:带宽使用的“实时仪表盘”
想知道网络带宽被谁占了?iftop能实时显示每个连接的流量,简单直观。
基础用法
iftop -i eth0
监控eth0的流量,屏幕上会显示源IP、目标IP和速率。
进阶玩法
- 过滤主机:iftop -f "host 192.168.1.100"。
- 不解析:iftop -n,用IP而非域名显示,速度更快。
实战场景
服务器流量突然飙升,用iftop一看,发现某个IP在狂下数据,可能是DDoS或误操作。
7.nslookup:DNS的“敲门员”
域名解析出问题?nslookup帮你查个明白。它能查询DNS记录,确认域名对应的IP是否正确。
基础用法
nslookup www.taobao.com
返回域名的IP地址和使用的DNS服务器。
进阶玩法
- 查MX记录:nslookup -type=mx taobao.com,看邮件服务器。
- 指定DNS:nslookup www.taobao.com 8.8.8.8,用Google DNS查询。
实战场景
网站打不开,但IP能ping通,用nslookup确认DNS解析有没有问题。
8.dig:DNS的“深度挖掘机”
比nslookup更强大,dig提供详细的DNS解析信息,输出清晰易读。
基础用法
dig www.jd.com
返回A记录、查询时间等完整信息。
进阶玩法
- 查NS记录:dig ns jd.com,看权威DNS服务器。
- 指定服务器:dig @114.114.114.114 www.jd.com。
实战场景
解析结果不一致?用dig对比不同DNS服务器的返回,找出问题源头。
9.iptables:防火墙的“守门员”
iptables是Linux防火墙的核心,控制进出流量,保障安全。
基础用法
iptables -L -n
列出所有规则,-n避免解析IP。
进阶玩法
- 加规则:iptables -A INPUT -p tcp --dport 22 -j ACCEPT,允许SSH。
- 删规则:iptables -D INPUT 1,删除第一条。
- 保存:iptables-save > rules.txt。
实战场景
服务器被攻击,紧急用iptables -A INPUT -s 恶意IP -j DROP封掉。
10.route:路由表的“导航仪”
网络不通,可能路由有问题。route帮你查看和调整路由表。
基础用法
route -n
显示路由表,-n用数字显示。
进阶玩法
- 加网关:route add default gw 192.168.1.1。
- 加路由:route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.1.2。
实战场景
访问内网失败,用route -n检查默认网关是否正确。
11.arp:地址解析的“名片簿”
arp管理IP到MAC地址的映射,排查局域网问题很实用。
基础用法
arp -a
显示ARP缓存。
进阶玩法
- 加条目:arp -s 192.168.1.100 00:11:22:33:44:55。
- 删条目:arp -d 192.168.1.100。
实战场景
怀疑ARP欺骗,用arp -a看看有没有异常MAC。
12.ip:网络配置的“全能王”
ip命令现代且强大,涵盖接口、路由和ARP管理。
基础用法
ip addr show
显示接口IP。
进阶玩法
- 加IP:ip addr add 192.168.1.100/24 dev eth0。
- 加路由:ip route add 10.0.0.0/8 via 192.168.1.1。
实战场景
临时加个IP测试,用ip addr add分分钟搞定。
13.ethtool:网卡的“体检仪”
ethtool检查和设置网卡参数,比如速度和双工模式。
基础用法
ethtool eth0
显示网卡状态。
进阶玩法
- 调速度:ethtool -s eth0 speed 1000 duplex full。
实战场景
网络慢,怀疑网卡协商错误,用ethtool确认。
14.mtr:路径延迟的“实时侦探”
mtr结合ping和traceroute,动态显示每跳延迟。
基础用法
mtr www.tencent.com
进阶玩法
- 限包数:mtr -c 20 www.tencent.com。
实战场景
网络抖动,用mtr找出哪一跳不稳定。
15.nc:网络的“万能胶”
nc(netcat)用途广泛,可监听、连接、传文件。
基础用法
- 监听:nc -l 1234。
- 连接:nc 192.168.1.100 1234。
实战场景
测试端口连通性,用nc简单高效。
总结:成为网络排查的“硬核玩家”
从ping到nc,这些命令覆盖了网络排查的方方面面。无论是快速定位丢包、分析流量,还是调整配置,它们都能让你事半功倍。运维路上,问题无处不在,但有了这些工具,你就能从容应对。动手试试吧,下次遇到网络故障,别忘了掏出你的“瑞士军刀”!