探索

ifconfig不显示ip地址

时间:2010-12-5 17:23:32  作者:探索   来源:综合  查看:  评论:0
内容摘要:ifconfig 不显示 IP 地址,这事我遇到过不下二十次。每次都是同一副场景:屏幕上一行行网卡信息滚过去,eth0 或 ens33 下面干干净净,没有 inet 那一行。你盯着那个空档,心里清楚网

ifconfig 不显示 IP 地址,不显这事我遇到过不下二十次。不显每次都是不显同一副场景:屏幕上一行行网卡信息滚过去,eth0 或 ens33 下面干干净净,不显没有 inet 那一行。不显你盯着那个空档,不显心里清楚网线插着,不显路由器灯也亮着,不显但系统就是不显不肯给你一个地址。

先说最常见的不显原因——DHCP 没拿到租约。你敲了 ifconfig,不显看到 UP 状态,不显但没地址,不显十有八九是不显 DHCP 客户端压根没跑,或者跑了没收到回应。不显我有一台跑 Ubuntu 18.04 的老机器,系统装完默认用 netplan,但配置文件里写错了网卡名,写成了 eth0,实际叫 enp2s0。结果 ifconfig 里只能看到 lo,连网卡都没起来。这算第二种情况:网卡没被激活。

再往下排查,你得先看网卡状态。命令输出里有 UP 和 RUNNING 两个标志位。如果只有 UP 没有 RUNNING,说明物理链路不通——要么网线松了,要么交换机端口没开。我见过有人折腾了半小时系统配置,最后发现是办公桌底下的网线被椅子腿压断了。这种时候 ifconfig 给你看的不是 bug,是物理世界的诚实反馈。

还有一种隐蔽情况,NetworkManager 和 systemd-networkd 打架。两个服务同时管同一块网卡,一个想用 DHCP,一个想配静态,结果谁都没成功。你敲 ifconfig 时地址栏空空如也,但 ip addr 可能显示一个 169.254.x.x 的自动配置地址——那是系统自己瞎编的,说明 DHCP 超时了。碰到这种,先停掉一个服务,别让它们抢方向盘。

老实说,ifconfig 本身也已经过时了。iproute2 里的 ip addr show 给的信息更细,还能看到 state 是 DOWN 还是 UNKNOWN。ifconfig 的界面太老了,有些新驱动根本不往它的数据结构里填地址,所以不是没 IP,是它没告诉你。我上次帮同事查一个问题,ifconfig 显示 eth0 无地址,换 ip 命令一看,IPv6 地址好好躺着,只是 IPv4 没配。他以为断网,其实只是没按需求配 v4。

排查的顺序别乱。先看物理层——ethtool eth0 看 link detected 是不是 yes。然后看驱动层——dmesg | grep eth0 有没有报错。再看配置层——查 /etc/network/interfaces 或 netplan 的 yaml 文件,确认没写错网卡名。最后看服务层——systemctl status NetworkManager 是否 active。这四步走完,九成问题能定位。

最气人的是那种间歇性不显示。网卡有时候有地址,重启后就没了。这种多半是 DHCP 服务器响应慢,而客户端超时设得太短。你可以在配置文件里把 timeout 调长,比如从 10 秒改到 30 秒。别笑,真有人因为路由器启动比电脑慢,每次开机都抢不到地址。

ifconfig 不显示 IP,不是世界末日,但确实烦人。记住,工具只是表象,底层是链路、驱动、配置、服务四层逻辑。你顺着链路摸下去,总能找到那个断点。多数时候不是系统坏了,是你没给它想要的输入。

最近更新
热门排行
copyright © 2026 powered by 烟消火灭网   sitemap