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 通网关,但死活连不上服务器。查了半天,就是掩码多了一位。

注意: 子网掩码配错了,网络可能「半通不通」。能 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:当前 IP
  • Bcast:广播地址
  • 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,广播地址自动。完整流程:

  1. 先看看当前状态:ifconfig eth0
  2. 配置 IP 和掩码:ifconfig eth0 192.168.1.50 netmask 255.255.255.0
  3. 激活网卡(如果没激活):ifconfig eth0 up
  4. 验证:ifconfig eth0
  5. 测试连通性:ping 192.168.1.1

如果 ping 不通,别慌。先检查 IP 和掩码对不对,再看网线灯亮不亮,最后看看防火墙。我遇到过好几次,配得完全正确,就是被 iptables 拦了。

3.7 本章知识体系

下面这张图,帮你把 ifconfig 静态配置的核心逻辑串起来:

ifconfig 静态IP配置核心逻辑 ifconfig 配置命令 IP 地址 ifconfig eth0 192.168.1.100 子网掩码 netmask 255.255.255.0 广播地址 broadcast 192.168.1.255 验证:ifconfig eth0 查看配置是否生效 测试:ping 网关或目标设备 ⚠ 临时配置:重启后丢失,仅用于调试
小技巧: 如果你不确定当前网卡名字,可以敲 ifconfig -a,它会列出所有网卡,包括没激活的。有些嵌入式系统网卡不叫 eth0,而是 enp0s3 或者 wlan0,先看一眼再配。

好了,ifconfig 临时配静态 IP 就这些。说白了,就是一条命令搞定 IP、掩码、广播。但别忘了,它是临时的。下一节我们会聊怎么把这些配置固化到文件里,让设备重启后还能用。

可可精品资料库