网络排障常用命令总表

网络问题一般按这条顺序查:

  1. 先看本机配置
    • IP、子网掩码、网关、网卡状态
  2. 看 DNS 是否正常
    • 域名能不能解析成 IP
  3. 看主机是否可达
    • 能不能到目标机器
  4. 看端口是否可达
    • 某个服务端口开没开
  5. 看应用层是否正常
    • HTTP/HTTPS/接口是否真能用
  6. 看链路卡在哪
    • 哪一跳有延迟、丢包或中断
  7. 看本机监听和连接状态
    • 服务是否启动、端口是否监听
  8. 必要时抓包
    • 看数据到底有没有发出、有没有回来

二、常用命令总表


1. 查看本机 IP、网卡、地址配置

ip addr

查什么:

  • 本机网卡
  • IP 地址
  • 网卡是否 UP
  • 是否拿到地址

适合排查:

  • 本机有没有 IP
  • 网卡是否启用
  • 是否在正确网段

示例:

ip addr

ifconfig

查什么:

  • ip addr 类似,查看网卡和 IP
  • 老系统常见

适合排查:

  • 老环境下看网卡状态

示例:

ifconfig

2. 查看路由和网关

ip route

查什么:

  • 路由表
  • 默认网关
  • 到某网段走哪个网卡

适合排查:

  • 网关是否正确
  • 路由是否缺失
  • 流量走向是否正常

示例:

ip route

route -n

查什么:

  • 路由表
  • 默认路由

适合排查:

  • 老系统查看路由

示例:

route -n

3. 查看 DNS 解析

nslookup

查什么:

  • 域名能否解析
  • 域名对应的 IP
  • 使用的是哪个 DNS 服务器

适合排查:

  • 域名是否存在
  • DNS 是否工作正常

示例:

nslookup example.com

dig

查什么:

  • 更详细的 DNS 信息
  • A/AAAA/CNAME/MX 等记录
  • DNS 响应详情

适合排查:

  • 精确分析 DNS 问题
  • 查解析链路和记录类型

示例:

dig example.com
dig example.com A
dig example.com MX

host

查什么:

  • 快速查域名解析结果

适合排查:

  • 简单 DNS 验证

示例:

host example.com

4. 测试主机是否可达

ping

查什么:

  • 目标主机是否可达
  • 延迟
  • 丢包率

适合排查:

  • 网络是否基本通
  • 主机是否在线
  • 链路是否稳定

示例:

ping 8.8.8.8
ping example.com

注意:

  • ping 不通不一定代表主机挂了,可能只是禁了 ICMP

5. 测试端口是否可达

telnet

查什么:

  • 某个 TCP 端口能否建立连接

适合排查:

  • 服务端口是否开放
  • 防火墙是否拦截
  • 服务是否监听

示例:

telnet example.com 80
telnet 192.168.1.10 22

nc / netcat

查什么:

  • TCP/UDP 端口连通性
  • telnet 更灵活

适合排查:

  • 端口是否开放
  • 某服务能不能连上

示例:

nc -zv example.com 443
nc -zv 192.168.1.10 3306

6. 测试应用层服务是否正常

curl

查什么:

  • HTTP/HTTPS 服务是否正常
  • 返回码、响应头、重定向、证书

适合排查:

  • 网站能否访问
  • API 是否正常
  • HTTPS 是否有证书问题
  • 端口虽通但应用是否真的可用

示例:

curl -I https://example.com
curl -v https://example.com
curl http://127.0.0.1:8080/health

wget

查什么:

  • 下载资源是否成功
  • HTTP/HTTPS 访问情况

适合排查:

  • URL 可访问性
  • 文件下载通不通

示例:

wget https://example.com/file.txt

7. 查链路路径和故障位置

traceroute

查什么:

  • 到目标主机经过哪些跳
  • 卡在哪一跳

适合排查:

  • 路由中断
  • 中间链路问题
  • 是本地问题还是运营商/对端问题

示例:

traceroute example.com

mtr

查什么:

  • 路径 + 每一跳延迟 + 丢包率
  • 相当于 pingtraceroute 结合

适合排查:

  • 哪一跳丢包
  • 哪一跳延迟高
  • 网络不稳定问题

示例:

mtr example.com
mtr -rw example.com

8. 查看端口监听和连接状态

ss

查什么:

  • 当前监听端口
  • 已建立连接
  • 哪个进程占用哪个端口

适合排查:

  • 服务有没有启动
  • 端口是否在监听
  • 当前网络连接情况

示例:

ss -lnt
ss -ant
ss -lntp

netstat

查什么:

  • ss 类似
  • 监听端口、连接状态、路由等

适合排查:

  • 老环境查看端口和连接

示例:

netstat -lnt
netstat -ant
netstat -tunlp

lsof -i

查什么:

  • 哪个进程打开了哪些网络端口

适合排查:

  • 某个端口被谁占用
  • 某个服务是否在监听

示例:

lsof -i :80
lsof -iTCP -sTCP:LISTEN

9. 查看邻居、ARP、二层信息

ip neigh

查什么:

  • ARP 邻居表
  • IP 对应的 MAC 地址

适合排查:

  • 局域网通信问题
  • 网关是否可达
  • ARP 是否正常学习

示例:

ip neigh

arp -n

查什么:

  • ARP 缓存表

适合排查:

  • 同网段设备通信问题

示例:

arp -n

10. 查看网卡统计和链路状态

ethtool

查什么:

  • 网卡速率
  • 双工模式
  • Link 是否 up
  • 驱动信息

适合排查:

  • 网卡物理链路问题
  • 网线/交换机口问题
  • 速率协商异常

示例:

ethtool eth0

ip -s link

查什么:

  • 网卡收发包统计
  • 错包、丢包、碰撞等

适合排查:

  • 网卡异常
  • 丢包是否发生在本机网卡层面

示例:

ip -s link

11. 查看 DNS 配置文件

cat /etc/resolv.conf

查什么:

  • 本机 DNS 服务器配置

适合排查:

  • DNS 指向错了
  • 没配置 DNS

示例:

cat /etc/resolv.conf

cat /etc/hosts

查什么:

  • 本地 hosts 静态解析

适合排查:

  • 域名被本地错误映射
  • 为什么解析结果和 DNS 不一致

示例:

cat /etc/hosts

12. 抓包分析

tcpdump

查什么:

  • 数据包有没有发出去
  • 有没有回应
  • 三次握手是否成功
  • DNS 查询、HTTP 请求、RST、重传等

适合排查:

  • 高级网络问题
  • 服务连接失败原因
  • 防火墙/重传/超时分析

示例:

tcpdump -i eth0 host 1.1.1.1
tcpdump -i eth0 port 80
tcpdump -i any tcp port 443

Wireshark

查什么:

  • 图形化抓包分析

适合排查:

  • 复杂协议问题
  • 详细分析 TCP/HTTP/TLS

13. 查看防火墙规则

iptables -L -n

查什么:

  • Linux 防火墙规则

适合排查:

  • 为什么端口不通
  • 为什么包被拦截

示例:

iptables -L -n

firewall-cmd --list-all

查什么:

  • firewalld 配置

适合排查:

  • 端口是否已放行

示例:

firewall-cmd --list-all

ufw status

查什么:

  • Ubuntu 常见防火墙状态

适合排查:

  • 端口是否被 UFW 拦截

示例:

ufw status

14. 查看服务是否启动

systemctl status 服务名

查什么:

  • 服务是否运行
  • 启动是否失败

适合排查:

  • 端口不通到底是网络问题还是服务没启动

示例:

systemctl status nginx
systemctl status sshd

三、命令之间的关系

可以这样理解:

命令 主要查询目标
ip addr 本机 IP、网卡状态
ip route 默认网关、路由
nslookup / dig DNS 解析
ping 主机可达性
telnet / nc 端口连通性
curl 应用层服务是否正常
traceroute / mtr 路径、故障点、丢包延迟
ss / netstat 本机监听和连接状态
lsof -i 端口对应进程
ip neigh / arp 局域网 ARP 邻居
ethtool 网卡物理链路状态
tcpdump 数据包实际收发情况
iptables / firewall-cmd 防火墙规则

四、按问题类型来查


1. 域名访问失败

先查:

nslookup example.com
dig example.com
cat /etc/resolv.conf
cat /etc/hosts

目标:

  • 看是不是 DNS 问题
  • 看是不是本地 hosts 写错了

2. 主机不通

先查:

ping 目标IP
traceroute 目标IP
mtr 目标IP

目标:

  • 主机是否在线
  • 卡在哪一段链路

3. 某个端口不通

先查:

nc -zv 目标IP 端口
telnet 目标IP 端口
ss -lnt
iptables -L -n

目标:

  • 端口是否开放
  • 服务是否监听
  • 防火墙是否阻断

4. 网站打不开 / 接口异常

先查:

curl -v https://example.com
nc -zv example.com 443
dig example.com

目标:

  • 是 DNS 问题
  • 还是 TCP 端口问题
  • 还是 HTTPS / HTTP 应用问题

5. 本机网络配置异常

先查:

ip addr
ip route
ip neigh
ethtool eth0

目标:

  • 本机 IP、网关是否正确
  • 网卡链路是否正常
  • 是否能找到网关 MAC

6. 怀疑包没出去或没回来

查:

tcpdump -i any host 目标IP

目标:

  • 请求有没有发出
  • 响应有没有回来
  • 被谁 reset / timeout

五、一个实用的最小排障模板

如果你遇到“访问某个服务失败”,可以按这个顺序:

1. 看本机配置

ip addr
ip route

2. 看 DNS

nslookup example.com
dig example.com

3. 看主机通不通

ping example.com

4. 看端口通不通

nc -zv example.com 443

5. 看应用是否正常

curl -v https://example.com

6. 看链路卡在哪

mtr example.com

7. 看本机监听/防火墙

ss -lntp
iptables -L -n

8. 必要时抓包

tcpdump -i any host example.com

六、最简总结版

如果只记核心的,记这几个就够了:

命令 方法 查询目标
ip addr 看本机配置 IP、网卡状态
ip route 看路由 网关、路由表
nslookup / dig 查 DNS 域名是否能解析
ping 测可达性 主机是否能到
telnet / nc 测端口 端口是否开放
curl 测应用 HTTP/HTTPS 是否正常
traceroute / mtr 查路径 问题卡在哪一跳
ss / netstat 看监听 服务端口是否启动
tcpdump 抓包 包有没有发/回
iptables 看防火墙 是否被规则拦截

如果你愿意,我可以下一步直接帮你整理成一份更方便背的:

  1. 面试版网络排障口诀
  2. Linux 网络命令速查表
  3. 按场景分类:DNS 问题 / 端口问题 / HTTP 问题 / 路由问题
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇