您的当前位置:首页 > 时尚 > ifconfig查看ip地址 正文

ifconfig查看ip地址

时间:2026-10-17 04:38:17 来源:网络整理 编辑:时尚

核心提示

打开终端,敲下 `ifconfig`,回车。屏幕上刷出一堆数据,这就是你机器上网卡的即时快照。别急着往下翻,先找那个叫 `eth0` 或者 `wlan0` 的——前者通常是有线,后者是无线。但今天很多

打开终端,地址敲下 `ifconfig`,地址回车。地址屏幕上刷出一堆数据,地址这就是地址你机器上网卡的即时快照。别急着往下翻,地址先找那个叫 `eth0` 或者 `wlan0` 的地址——前者通常是有线,后者是地址无线。但今天很多新系统里,地址你敲完可能只看到 `lo` 一个回环接口,地址别慌,地址不是地址网卡坏了,是地址 `ifconfig` 老了。

我手头这台 Ubuntu 22.04,地址默认就没装 `net-tools`,地址`ifconfig` 直接提示 command not found。得先 `sudo apt install net-tools` 才能用。装完再跑,输出里每个接口都分两段:第一段是链路层信息,第二段是 IP 层。你要的 IP 地址,藏在 `inet` 后面那串数字里。

拿 `eth0` 举例。输出大概长这样:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.47 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::a00:27ff:fe4e:66a1 prefixlen 64 scopeid 0x20<link> ether 08:00:27:4e:66:a1 txqueuelen 1000 (Ethernet) RX packets 1024 bytes 789456 (789.4 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 512 bytes 123456 (123.4 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

看到 `inet 192.168.1.47` 了吗?这就是本机在局域网里的 IPv4 地址。`netmask` 是子网掩码,`broadcast` 是广播地址。下面那行 `inet6` 开头的是 IPv6 地址,通常以 `fe80` 打头的是链路本地地址,只在同一网段内有效,不能用来跨路由访问。

有人会问,为什么我 `ifconfig` 出来一堆接口,哪个才是真正对外的?简单。带 `UP` 和 `RUNNING` 标志的,说明网卡已启用且网线插着或 WiFi 连着。`lo` 那个永远有 `inet 127.0.0.1`,那是本机回环,不算。还有 `docker0`、`br-xxxx` 这种,是 Docker 或虚拟网桥创建的,除非你在容器里排查网络,否则不用管。

实际排查时,我习惯加个 `grep` 过滤。`ifconfig eth0 | grep 'inet '` 直接出那一行。注意 `inet ` 后面有个空格,不然会匹配到 `inet6`。这招在写脚本时特别顺手。另一个常用的是 `ifconfig -a`,显示所有接口,包括那些 down 掉的。有次我插了个 USB 网卡,系统没自动启用,`ifconfig` 默认不显示,加 `-a` 才看到 `enx...` 那个接口,然后 `sudo ifconfig enx... up` 才把它拉起来。

不过现在更多人在用 `ip addr` 或者 `ip a`。输出更紧凑,颜色也清楚。`ifconfig` 属于 net-tools 套件,内核社区早就不维护了。但很多老服务器、嵌入式设备、还有 Docker 容器里,默认还是只有 `ifconfig`。你总不能每次上去先装个 iproute2 吧。所以这命令该会还得会。

有个细节:`ifconfig` 显示的 IP 是“当前”的。如果你刚改了 DHCP 租约或者手动设了静态地址,得重新跑一次。它不会自动刷新。还有,无线网卡用 `ifconfig` 看不到信号强度、连接速率这些,得用 `iwconfig`。但看 IP 地址,`ifconfig` 足够。

最后说个坑。有些发行版里 `ifconfig` 的输出中,`inet` 那行可能因为终端宽度被截断。你看到 `inet 192.168.1` 后面没了,别以为 IP 是 `192.168.1`,那只是显示问题。把终端拉宽,或者用 `ifconfig eth0 | grep -oP 'inet \K[\d.]+'` 直接提取纯 IP。这正则我用了好几年,没出过错。

行了,敲命令去吧。看到 `inet` 后面那四个数字,你就知道自己在网络里的门牌号了。