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
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
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 脚本中的高级用法,请继续提问 👇