3、静态IP配置(ifconfig):使用ifconfig临时配置IP地址、配置子网掩码、配置广播地址
说实话,虽然现在很多系统都推荐用 ip 命令,但 ifconfig 在我心里一直有个特殊位置。我入行那会儿,它就是网络配置的标配。哪怕到了今天,很多老牌嵌入式系统、裁剪过的内核里,ifconfig 依然是唯一的选择。
这一节,我们就来聊聊怎么用 ifconfig 临时配个静态IP。注意,我说的是「临时」——重启网络服务或者重启设备,配置就丢了。但调试阶段,这招特别管用。
3.1 ifconfig 的基本用法
先看最核心的命令。假设你的网卡叫 eth0,想给它配个 IP 192.168.1.100,子网掩码 255.255.255.0:
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
就这么一行。敲下去,IP 和掩码就生效了。我当年第一次在开发板上敲这个命令,看到 ping 通了隔壁的电脑,那种感觉,嗯,挺爽的。
如果你想顺手把广播地址也配了:
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
广播地址不指定的话,系统会自动根据 IP 和掩码算出来。但有些特殊网络环境,比如子网划分比较奇葩的时候,手动指定会更稳妥。
3.2 配置子网掩码的细节
子网掩码决定了你的设备能「直接」跟谁说话。说白了,就是判断目标 IP 是不是在同一个局域网里。
举个例子:
- IP:
192.168.1.100 - 掩码:
255.255.255.0(也就是 /24) - 那么
192.168.1.0 ~ 192.168.1.255都是同一个网段
如果你配成 255.255.255.128(/25),那范围就缩到 192.168.1.0 ~ 192.168.1.127 了。我在项目中遇到过一回,现场工程师配错了掩码,导致设备能 ping 通网关,但死活连不上服务器。查了半天,就是掩码多了一位。
3.3 配置广播地址
广播地址,就是往整个网段吼一嗓子用的。比如 192.168.1.255,你往这个地址发数据,同网段所有设备都能收到。
大多数情况下,系统会自动算好广播地址。但有些老设备或者特殊网络,广播地址可能不是标准的。比如子网掩码是 255.255.255.0,广播地址按理说是 192.168.1.255。但如果你手动配成 192.168.1.200,那广播就只发到 .200 这个地址——这其实已经不是广播了,是个单播地址。嗯,这里要注意,别乱改。
我建议,除非你明确知道网络拓扑需要,否则广播地址就让系统自动生成。手动指定反而容易出幺蛾子。
3.4 查看配置结果
配完了,怎么确认?直接敲 ifconfig 不带参数:
ifconfig eth0
输出大概长这样:
eth0 Link encap:Ethernet HWaddr 00:0c:29:ab:cd:ef
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1234 errors:0 dropped:0 overruns:0 frame:0
TX packets:5678 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:123456 (120.5 KB) TX bytes:789012 (770.5 KB)
重点看三行:
inet addr:当前 IPBcast:广播地址Mask:子网掩码
如果看到 UP 和 RUNNING,说明网卡已经激活且链路正常。如果只有 UP 没有 RUNNING,那可能是网线没插好,或者对端设备没开。
3.5 临时配置的「临时」到底有多临时?
这个问题我经常被问到。用 ifconfig 配的 IP,只存在于内存里。一旦:
- 重启网络服务(比如
systemctl restart networking) - 重启设备
- 拔插网线(某些驱动会触发重新协商)
配置就丢了。所以它特别适合:
- 开发调试阶段快速改 IP
- 临时接入不同网段测试
- 系统还没固化网络配置时应急用
我曾经在野外调试一台设备,现场网络环境跟实验室完全不一样。我直接用 ifconfig 改了 IP,测完功能就走了。回来之后,设备重启,自动恢复成原来的配置——嗯,这就是临时配置的好处,不会污染系统。
3.6 一个完整的配置流程
假设你拿到一块新板子,网卡是 eth0,想临时配成 192.168.1.50,掩码 255.255.255.0,广播地址自动。完整流程:
- 先看看当前状态:
ifconfig eth0 - 配置 IP 和掩码:
ifconfig eth0 192.168.1.50 netmask 255.255.255.0 - 激活网卡(如果没激活):
ifconfig eth0 up - 验证:
ifconfig eth0 - 测试连通性:
ping 192.168.1.1
如果 ping 不通,别慌。先检查 IP 和掩码对不对,再看网线灯亮不亮,最后看看防火墙。我遇到过好几次,配得完全正确,就是被 iptables 拦了。
3.7 本章知识体系
下面这张图,帮你把 ifconfig 静态配置的核心逻辑串起来:
ifconfig -a,它会列出所有网卡,包括没激活的。有些嵌入式系统网卡不叫 eth0,而是 enp0s3 或者 wlan0,先看一眼再配。
好了,ifconfig 临时配静态 IP 就这些。说白了,就是一条命令搞定 IP、掩码、广播。但别忘了,它是临时的。下一节我们会聊怎么把这些配置固化到文件里,让设备重启后还能用。
可可精品资料库