Linux `ifconfig` 命令详解
Linux ifconfig 命令详解
🎯 学习目标
- 理解
ifconfig命令的基本功能与作用 - 掌握
ifconfig的常用参数及使用方法 - 能在实际网络故障排查和配置中灵活运用
ifconfig查看、启用/禁用网卡、设置 IP 地址等 - 了解
ifconfig在不同 Linux 发行版(如 Ubuntu、CentOS、Euler)中的行为差异以及现代替代命令ip
🔑 核心重点
| 功能 | 说明 |
|---|---|
| 默认行为 | 显示所有激活的网络接口信息 |
eth0, lo, wlan0 |
不同类型网络接口名称 |
up/down |
启用或禁用指定网卡 |
inet addr |
IPv4 地址 |
Bcast |
广播地址 |
Mask |
子网掩码 |
| 实际应用场景 | 网络调试、临时 IP 设置、服务恢复、脚本调用等 |
🧠 详细讲解
📌 一、什么是 ifconfig?
ifconfig 是 interface configuration 的缩写,是 Linux 中用于查看和配置网络接口的传统命令。
📌 它可以用来:
- 查看当前系统中所有网络接口的状态
- 临时设置 IP 地址、子网掩码、广播地址
- 启用或禁用网卡
- 查看 MAC 地址、MTU、数据包统计等信息
⚠️ 注意:
ifconfig已被标记为过时命令,推荐使用ip命令(见后续章节)。但因其广泛使用,仍需掌握。
📌 二、基础用法示例
✅ 示例 1:显示所有网络接口信息
$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 123456 bytes 123456789 (117.7 MiB)
TX packets 654321 bytes 987654321 (941.9 MiB)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 1234 bytes 123456 (120.6 KiB)
TX packets 1234 bytes 123456 (120.6 KiB)
📌 输出含义:
flags:接口状态标志UP表示启用RUNNING表示物理连接正常
inet:IPv4 地址netmask:子网掩码broadcast:广播地址ether:MAC 地址RX/TX packets:接收/发送的数据包数量mtu:最大传输单元(默认 1500)
✅ 示例 2:只查看特定网卡的信息
$ ifconfig eth0
📌 非常适合在脚本中提取某个接口的详细信息。
📌 三、常用操作与参数详解
✅ 操作 1:启用/禁用网卡
sudo ifconfig eth0 up # 启用网卡
sudo ifconfig eth0 down # 禁用网卡
📌 适用于重启网络服务失败后的手动恢复。
✅ 操作 2:临时设置 IP 地址和子网掩码
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0
📌 适用于临时测试网络环境,重启后失效。
✅ 操作 3:设置广播地址
sudo ifconfig eth0 broadcast 192.168.1.255
📌 多用于局域网通信测试。
✅ 操作 4:查看网卡的 MAC 地址
$ ifconfig eth0 | grep ether
ether 00:0c:29:xx:xx:xx txqueuelen 1000 (Ethernet)
📌 或者使用 cat /sys/class/net/eth0/address
📌 四、常见网络接口类型
| 接口名 | 类型 | 说明 |
|---|---|---|
lo |
Loopback | 本地回环接口,用于本地测试 |
eth0, eth1 |
Ethernet | 有线以太网接口 |
ens33, enp0s3 |
新式命名规则(systemd) | 更具可读性 |
wlan0, wlp2s0 |
Wi-Fi | 无线网卡接口 |
docker0 |
Docker 虚拟网络 | 容器桥接网络接口 |
veth* |
虚拟接口 | 通常用于容器或虚拟化技术 |
📌 五、进阶实战案例
🧪 场景 1:脚本中判断网卡是否启用
#!/bin/bash
iface="eth0"
if ifconfig "$iface" | grep -q "RUNNING"; then
echo "✅ $iface 正在运行"
else
echo "❌ $iface 未启用"
fi
📌 可用于自动化部署或健康检查脚本。
🧪 场景 2:临时搭建测试环境(模拟多 IP)
sudo ifconfig eth0:0 192.168.1.200 netmask 255.255.255.0 up
📌 创建虚拟接口 eth0:0,实现单网卡多 IP 测试 Web 服务绑定。
🧪 场景 3:快速清除 IP 地址并重置
sudo ifconfig eth0 0.0.0.0 down
sudo ifconfig eth0 up
📌 清除 IP 并重新启用网卡,常用于 DHCP 获取新 IP 前的操作。
📌 六、不同 Linux 发行版上的行为差异
| 发行版 | 是否自带 ifconfig |
所属软件包 | 特点 |
|---|---|---|---|
| Ubuntu 18.04+ | ❌ 默认不安装 | net-tools |
推荐使用 ip |
| CentOS 7/8 | ✅ 默认安装 | net-tools |
支持完整功能 |
| EulerOS 2.9+ | ✅ 默认安装 | net-tools |
华为企业级系统 |
| Alpine Linux | ❌ 默认不带 | net-tools |
需手动安装 |
| Arch Linux | ❌ 默认不带 | net-tools |
推荐使用 ip |
🔧 安装建议:
# Ubuntu/Debian
sudo apt install net-tools
# CentOS/EulerOS
sudo yum install net-tools
# Alpine
apk add net-tools
📌 七、与 ip 命令对比(现代替代方案)
| 功能 | ifconfig |
ip |
|---|---|---|
| 查看接口信息 | ifconfig |
ip addr show |
| 设置 IP 地址 | ifconfig eth0 192.168.1.10 |
ip addr add 192.168.1.10 dev eth0 |
| 启用网卡 | ifconfig eth0 up |
ip link set eth0 up |
| 禁用网卡 | ifconfig eth0 down |
ip link set eth0 down |
| 支持 IPv6 | 有限 | 完整支持 |
| 性能与兼容性 | 传统工具 | 推荐使用,更强大 |
📌 推荐学习顺序:
- 初学者先学
ifconfig - 进阶后转向
ip命令,因为它支持更多高级功能(如 VLAN、策略路由等)
📌 八、结合实际项目举例
📂 项目背景:服务器突然无法访问外部网络
✅ 故障排查步骤:
-
查看网卡是否启用
ifconfig eth0若无输出或没有
inet地址,说明网卡可能被禁用。 -
尝试启用网卡
sudo ifconfig eth0 up -
尝试设置静态 IP(若 DHCP 无效)
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 -
检查网关是否可达
ping 192.168.1.1 -
检查 DNS 解析
nslookup www.example.com
📌 通过这些步骤可以快速定位是网卡问题、IP 配置问题还是 DNS/DHCP 问题。
📚 总结
通过本章学习,你应该已经掌握:
ifconfig命令的基本语法和参数含义- 如何使用
ifconfig查看、配置网络接口信息 - 在 Shell 脚本中结合
ifconfig实现自动化网络检测 - 不同 Linux 发行版下的兼容性问题及解决方法
- 实战中如何避免误操作和性能陷阱
💡 提醒:虽然
ifconfig已被现代 Linux 系统逐步淘汰,但它仍是运维人员必须掌握的基础命令之一。熟练掌握它将帮助你在旧系统维护、脚本编写和紧急排障中游刃有余。
如果你还想深入了解 ifconfig 在 Python、Go、Shell 脚本中的高级用法,请继续提问 👇

浙公网安备 33010602011771号