转载请注明以下内容:
来源:公众号【网络技术干货圈】
作者:圈圈
ID:wljsghq
在Linux的世界里,网络命令就像运维人员的“瑞士军刀”,无论你是需要快速定位网络故障、监控流量,还是优化网络配置,这些工具都能派上大用场。作为一名运维老兵,我深知网络问题可能让人抓狂——时而是丢包,时而是延迟,偶尔还有莫名其妙的断连。别慌!今天我将带你深入探索一系列Linux网络命令,它们不仅功能强大,还能让你在排查故障时游刃有余。这篇文章会尽量避免枯燥的技术术语,用通俗易懂的方式带你走进这些命令的硬核世界。准备好了吗?让我们开始吧!
提到网络排查,ping
绝对是绕不开的“老朋友”。它的作用很简单:测试你的主机和目标主机之间是否能正常通信。通过发送ICMP(互联网控制消息协议)请求并等待回复,ping
能告诉你网络是否通畅,以及延迟多少。
ping www.baidu.com
运行这个命令后,你会看到一行行输出,显示每次请求的响应时间(单位是毫秒)和TTL值(生存时间)。想停下来?按Ctrl+C
,它会给你一个总结:发了几包、丢了几包,平均延迟是多少。
-c
参数,比如ping -c 10 www.baidu.com
,发10个包就停。ping -s 1000 www.baidu.com
,发送1000字节的包看看效果。-t
,如ping -t 50 www.baidu.com
。假设你发现访问某个网站很慢,第一步就是ping
一下它的域名。如果有响应但延迟很高,可能是网络拥堵;如果完全没反应,问题可能出在DNS或目标服务器挂了。
如果ping
告诉你网络不通,但你还不清楚哪里出了问题,traceroute
就能派上用场。它能展示数据包从你这里到目标主机的完整路径,告诉你每经过一个路由器的情况。
traceroute www.baidu.com
输出会列出每一跳的IP地址和响应时间,通常最多30跳。如果某一行显示* * *
,说明那个路由器没回应,可能是配置了防火墙。
-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跳开始全是星号,问题很可能出在那台路由器。
netstat
是个多面手,能显示网络连接、路由表和接口统计,是老派运维的必备工具。尽管它逐渐被更现代的命令取代,但熟悉它依然很有价值。
netstat -tuln
这条命令列出所有监听中的TCP(-t
)和UDP(-u
)端口,-l
表示只看监听状态,-n
则避免解析域名,直接显示数字IP。
netstat -a
,包括已建立的和监听的。netstat -r
,相当于route
命令的输出。netstat -p
,告诉你哪个程序占用了端口。服务器被人投诉“端口被占”,跑个netstat -tuln
看看80端口是不是被意外占用,再用-p
揪出罪魁祸首。
ss
是netstat
的接班人,速度更快,信息更丰富。它专注于socket统计,能让你快速掌握网络连接的细节。
ss -tuln
和netstat -tuln
一样,显示监听的TCP/UDP端口。
ss -t
,列出所有TCP连接。ss -t state established
,只看已建立的连接。-e
,显示扩展信息,比如socket选项。服务器响应变慢,怀疑连接数过多?用ss -t | wc -l
统计当前TCP连接数,再结合-p
找出占用最多的进程。
如果前面命令还不够深入,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流量,看看是不是有异常重传或超时。
想知道网络带宽被谁占了?iftop
能实时显示每个连接的流量,简单直观。
iftop -i eth0
监控eth0的流量,屏幕上会显示源IP、目标IP和速率。
iftop -f "host 192.168.1.100"
。iftop -n
,用IP而非域名显示,速度更快。服务器流量突然飙升,用iftop
一看,发现某个IP在狂下数据,可能是DDoS或误操作。
域名解析出问题?nslookup
帮你查个明白。它能查询DNS记录,确认域名对应的IP是否正确。
nslookup www.taobao.com
返回域名的IP地址和使用的DNS服务器。
nslookup -type=mx taobao.com
,看邮件服务器。nslookup www.taobao.com 8.8.8.8
,用Google DNS查询。网站打不开,但IP能ping通,用nslookup
确认DNS解析有没有问题。
比nslookup
更强大,dig
提供详细的DNS解析信息,输出清晰易读。
dig www.jd.com
返回A记录、查询时间等完整信息。
dig ns jd.com
,看权威DNS服务器。dig @114.114.114.114 www.jd.com
。解析结果不一致?用dig
对比不同DNS服务器的返回,找出问题源头。
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
封掉。
网络不通,可能路由有问题。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
检查默认网关是否正确。
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。
ip
命令现代且强大,涵盖接口、路由和ARP管理。
ip addr show
显示接口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
分分钟搞定。
ethtool
检查和设置网卡参数,比如速度和双工模式。
ethtool eth0
显示网卡状态。
ethtool -s eth0 speed 1000 duplex full
。网络慢,怀疑网卡协商错误,用ethtool
确认。
mtr
结合ping
和traceroute
,动态显示每跳延迟。
mtr www.tencent.com
mtr -c 20 www.tencent.com
。
网络抖动,用mtr
找出哪一跳不稳定。
nc
(netcat)用途广泛,可监听、连接、传文件。
nc -l 1234
。nc 192.168.1.100 1234
。测试端口连通性,用nc
简单高效。