工作中遇到网络不通、网页打不开、服务器连不上,别急着重启电脑或找厂商。很多问题,其实几个简单的命令就能定位。下面这几个网络命令工具,都是日常排查中最实用的,几乎成了我打开终端后的“固定动作”。
ping:最基础也最常用
检查目标主机是否在线,第一反应就是 ping。比如公司内网某台服务器突然访问不了,先 ping 一下看通不通:
ping 192.168.1.100
如果一直超时,可能是网络断了,也可能是对方禁了 ICMP。但只要能通,延迟又不高,基本可以排除链路问题。
traceroute:看清数据包走的路
有时候 ping 得通但网页打不开,问题可能出在中间某个节点。这时候就得用 traceroute(Windows 下是 tracert)看看路径:
traceroute www.example.com
它会显示每一跳的 IP 和响应时间。如果某一段突然延迟飙升或者出现星号,那问题大概率就出在那一环,比如运营商线路抖动或者防火墙策略拦截。
netstat:谁在占用端口?
本地服务启动失败,提示“端口被占用”,这时候 netstat 就派上用场了。查一下 8080 端口是不是被占了:
netstat -an | grep 8080
还能加上 -p 参数看是哪个进程在用,方便直接 kill 或调整配置。开发调试接口时,这命令几乎是必敲的。
nslookup / dig:DNS 问题不用慌
网站打不开,但 IP 能 ping 通?很可能是 DNS 解析出了问题。用 nslookup 查一下域名解析结果:
nslookup www.google.com
或者更强大的 dig,能看详细解析过程:
dig www.baidu.com
如果返回空或者错的 IP,那问题就在 DNS 配置上,换一个公共 DNS 试试,比如 8.8.8.8 或者 114.114.114.114。
telnet / nc:测试端口通不通
有些服务不走 ICMP,也不返回 DNS 记录,比如数据库或 API 接口。想确认目标服务器的 3306 端口是否开放,可以用 telnet:
telnet 192.168.1.200 3306
如果连接成功,说明端口是通的;如果提示拒绝或超时,就得查防火墙或服务状态。nc(netcat)功能更强,还能传数据:
nc -zv 192.168.1.200 3306
ip / ifconfig:看本地网络配置
连不上网络,先看看自己有没有 IP。老系统用 ifconfig:
ifconfig
新系统推荐用 ip 命令,信息更全:
ip addr show
不仅能看 IP,还能查网关、子网掩码、MAC 地址,顺带确认网卡是不是 up 状态。有时候网线松了,这里一眼就能看出来。
这些工具不花哨,但天天用。熟练掌握之后,遇到问题不再一头雾水,而是能一步步缩小范围,快速找到症结所在。与其等别人回复工单,不如自己动手试几条命令,往往几分钟就解决了。