怎么查看和排查一台机器的网络配置(IP、网关、DNS、路由)?
简化版
排查本机网络配置,要看四样东西:① 本机 IP 和网卡(ip addr / Windows ipconfig);② 默认网关和路由表(ip route / route print);③ DNS 服务器(Linux 看 /etc/resolv.conf,Windows ipconfig /all);④ ARP 表(ip neigh / arp -a,看能不能拿到网关 MAC)。一台机器上不了网,先按「有没有 IP → 有没有网关 → 网关通不通 → DNS 对不对」这条线逐项核对,就能定位是本地配置的哪一环出了问题。现代 Linux 用 ip 命令族(ifconfig/route/netstat 属于已废弃的 net-tools)。
详细版
① 看 IP 和网卡:
ip addr # Linux(现代,简写 ip a)
ifconfig # Linux(旧,net-tools,部分系统不再自带)
ipconfig # Windows
ipconfig /all # Windows,含 DNS/MAC/DHCP 等全部信息
看:网卡是否 UP、有没有拿到 IP。若 IP 是 169.254.x.x(Windows APIPA)说明 DHCP 没拿到地址。
② 看默认网关和路由表:
ip route # Linux(简写 ip r),default 那行就是默认网关
route -n # Linux(旧)
route print # Windows
netstat -rn # 通用(旧)
default via 192.168.1.1 dev eth0 → 默认网关是 192.168.1.1。没有 default 路由 = 出不了本地网段。
③ 看 DNS 配置:
cat /etc/resolv.conf # Linux,nameserver 行就是 DNS
resolvectl status # systemd-resolved 的系统
ipconfig /all # Windows,看 DNS Servers 行
④ 看 ARP 表(本机 ↔ 网关的 MAC 映射):
ip neigh # Linux(现代)
arp -a # 通用
看能否拿到网关的 MAC(状态 REACHABLE)。拿不到(FAILED/INCOMPLETE)说明二层不通(同网段通信有问题)。
完整版教学
一、排查本机配置的四要素
一台机器能正常上网,本地必须配好四样东西,缺一不可,排查就是逐项核对它们:
- IP 地址:机器在网络上的身份,没有 IP 什么都干不了。
- 默认网关:通往「本网段之外」的出口,访问外网必经它。
- DNS 服务器:把域名翻译成 IP,配错就「能上 IP 上不了网站」。
- 路由表 / ARP:决定包往哪送、以及能不能在二层找到下一跳。
把这四样按顺序查一遍,本地配置的问题基本都能揪出来。下面逐个讲怎么看、怎么判断。
二、第一要素:IP 地址拿到了吗
ip addr show # Linux
ipconfig /all # Windows
重点看两件事:
- 网卡状态是不是
UP:DOWN说明网卡没启用(ip link set eth0 up启用)。 - 有没有合理的 IP:
- 正常 → 有一个内网 IP(如
192.168.x.x)或公网 IP。 169.254.x.x(Windows 叫 APIPA) → DHCP 没拿到地址的标志:机器发了 DHCP 请求但没得到响应,自己随便分了个链路本地地址。查 DHCP 服务器、网线/WiFi、或试ipconfig /renew(Win)/ 重启网络服务。- 没有任何 IP → 网卡/驱动/配置问题。
- 正常 → 有一个内网 IP(如
ip addr里lo(127.0.0.1)是回环网卡,一直都在,别把它当外网 IP。
三、第二要素:默认网关与路由表
有了 IP,还要有默认网关才能访问外网。查路由表:
ip route # Linux
route print # Windows
关键是找 default(或 0.0.0.0)那条路由:
default via 192.168.1.1 dev eth0 ← 默认网关 = 192.168.1.1
192.168.1.0/24 dev eth0 ← 本网段直连路由
- 有 default 路由 → 出网有出口。可以
ping 网关IP验证网关通不通。 - 没有 default 路由 → 只能访问本网段,出不了外网(这是「内网能通、外网全废」的典型原因)。
路由表的含义是「去往某个目标,该从哪个网卡、发给哪个下一跳」。系统按最长前缀匹配选路由:目标匹配到具体网段就走直连,匹配不到就走 default(网关)。理解这点,就知道为什么 default 路由是访问外网的命门。
四、第三要素:DNS 配置
网关通了、能 ping 通公网 IP,但打不开网站,十有八九是 DNS 配置问题。查:
cat /etc/resolv.conf # Linux 传统,看 nameserver
resolvectl status # systemd-resolved 系统(resolv.conf 可能是软链)
ipconfig /all # Windows,DNS Servers 那行
resolv.conf 里 nameserver 8.8.8.8 就是当前用的 DNS。排查点:
- 没有 nameserver → 没配 DNS,域名全解析不了。
- DNS 服务器不可用 → 配了但那台 DNS 挂了/连不上。换一个(如
8.8.8.8、223.5.5.5)测试。 - 验证:
ping 8.8.8.8通但ping 域名不通 → 坐实是 DNS 问题(呼应分层排查里的经典分流)。
注意现代 Linux 多用
systemd-resolved管 DNS,/etc/resolv.conf可能是指向127.0.0.53的软链,真实 DNS 要用resolvectl status看。
五、第四要素:ARP 表与二层连通
如果连网关都 ping 不通,问题可能在二层(数据链路层)——本机拿不到网关的 MAC 地址。查 ARP 表:
ip neigh # Linux(现代)
arp -a # 通用
它显示 IP ↔ MAC 的映射。看网关那条:
- 状态
REACHABLE/ 有 MAC → 二层正常,能找到网关。 FAILED/INCOMPLETE/ 没有网关条目 → ARP 解析失败,本机在二层找不到网关,可能是网线/交换机/VLAN 问题,或网关地址配错(配了个本网段不存在的网关)。- MAC 冲突/异常 → 可能有 ARP 欺骗(同一 IP 对应了错误的 MAC)。
ARP 是 IP 通信的底层前提——即使 IP、网关都配对了,二层不通照样上不了网,所以它是排查的最后一环兜底。
六、顺带认识:net-tools 已过时,改用 ip 命令
面试可能问「ifconfig 和 ip 的区别」。老一套命令 ifconfig/route/netstat/arp 属于 net-tools 包,已废弃,很多新发行版(如较新的 CentOS/Debian 精简版)默认不再自带。现代统一用 iproute2 的 ip / ss 命令:
| 旧(net-tools) | 新(iproute2) | 作用 |
|---|---|---|
ifconfig | ip addr / ip link | 看/配 IP、网卡 |
route | ip route | 看/配路由 |
arp | ip neigh | 看 ARP 表 |
netstat | ss | 看连接/端口 |
新命令功能更全、性能更好。写脚本或在新系统上排障,优先用 ip/ss。
七、常见误区与追问
| 考点 | 正确口径 |
|---|---|
| 基础配置 | IP、掩码、网关、DNS |
| 路由检查 | 默认路由、最长前缀、metric |
| 链路检查 | 网卡状态、ARP、VLAN、防火墙 |
ip addr
ip route
cat /etc/resolv.conf
ping gateway
arp -n
网络排障先看本机配置,再看下一跳;别一上来就怀疑远端服务。
- 误区:有 IP 就说明网络配置完整。 还需要掩码、默认网关、DNS、路由和防火墙策略都正确。
- 误区:DNS 失败就是网络不通。 IP 直连可通但域名失败,通常是 DNS 或解析配置问题。
- 误区:ping 外网失败一定是本机问题。 也可能是网关、运营商、目标禁 ICMP 或安全策略拦截。
- 追问:为什么先 ping 网关? 网关是跨网段第一跳,网关不通时排远端没有意义。
- 追问:如何判断掩码配错? 同网段判断错误会导致该直连的走网关,或该走网关的去 ARP 目标。
- 追问:多网卡机器容易错在哪? 默认路由、源地址选择、metric 和回包路径不一致都可能出问题。
八、加强记忆
排查本机网络配置查四要素:① IP + 网卡(ip addr/ipconfig,169.254.x.x=DHCP 没拿到地址);② 默认网关 + 路由表(ip route/route print,没 default 路由=出不了外网);③ DNS(/etc/resolv.conf/ipconfig /all,能 ping IP 打不开网站多是 DNS);④ ARP 表(ip neigh/arp -a,拿不到网关 MAC=二层不通)。按「有 IP→有网关→网关通→DNS 对」逐项核对。现代 Linux 用 iproute2 的 ip/ss,ifconfig/route/netstat 是已废弃的 net-tools。