1. ifconfig 命令简介
ifconfig(interface configurator)是一个用于配置和显示Linux系统内核中网络接口参数的工具。它通常在系统启动时被用来设置网络接口,之后也可用于调试或系统调优。
注意:在现代Linux发行版中,ifconfig 命令正逐渐被功能更强大的 ip 命令所取代,但因其语法简单直观,目前仍被广泛使用。
2. ifconfig 的安装
在大多数现代 Linux 发行版中,ifconfig 命令已经不再默认安装,因为它属于传统的 net-tools 软件包,正逐渐被功能更强大的 ip 命令套件所取代。
2.1. 检查ifconfig是否安装
1 2
| ifconfig zsh: command not found: ifconfig
|
出现上面的错误提示则说明未安装,如果已安装能显示相应的网卡信息。
2.2. 安装ifconfig
Debian/Ubuntu系统:
1 2 3 4 5
| sudo apt update
sudo apt install net-tools
|
CentOS7/RHEL7系统:
1 2
| sudo yum update sudo yum install net-tools
|
CentOS8/RHEL8/Fedora系统:
1 2
| sudo dnf update sudo dnf install net-tools
|
3. ifconfig 常用命令语法
3.1. 3.1 基本语法
1
| ifconfig [interface] [options] [address]
|
3.2. 3.2 常用操作示例
1. 显示所有接口信息
2. 显示指定接口信息
3. 启用/禁用网络接口
1 2
| ifconfig eth0 up ifconfig eth0 down
|
4. 配置IP地址和子网掩码
1 2
| ifconfig eth0 192.168.1.100 netmask 255.255.255.0 ifconfig eth0 192.168.1.100/24
|
5. 配置广播地址
1
| ifconfig eth0 broadcast 192.168.1.255
|
6. 设置MAC地址
1
| ifconfig eth0 hw ether 00:11:22:33:44:55
|
7. 设置MTU值
8. 添加别名接口(一个接口多个IP)
1 2
| ifconfig eth0:0 192.168.1.200 ifconfig eth0:1 192.168.1.201
|
9. 开启/关闭混杂模式
1 2
| ifconfig eth0 promisc ifconfig eth0 -promisc
|
4. ifconfig 输出结果详细解析
4.1. 网络接口基本信息
1
| eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
|
- 接口名称:如
eth0、ens33、wlan0 等。
- flags:接口状态标志
UP:接口已启用。
BROADCAST:支持广播通信。
RUNNING:接口正在运行。
MULTICAST:支持多播。
LOOPBACK:回环接口。
PROMISC:混杂模式(监听所有流量)。
- mtu:最大传输单元(1500是标准以太网值)。
4.2. IPv4 配置信息
1
| inet 172.31.169.244 netmask 255.255.240.0 broadcast 172.31.175.255
|
- inet:IPv4地址。
- netmask:子网掩码。
- broadcast:广播地址。
- destination:目标地址(在点对点连接中显示)。
4.3. IPv6 配置信息
1
| inet6 fe80::215:5dff:fe76:6afc prefixlen 64 scopeid 0x20<link>
|
- inet6:IPv6地址。
- prefixlen:前缀长度(类似IPv4的子网掩码)。
- scopeid:地址作用域
link:链路本地。
site:站点本地。
host:仅本机。
4.4. 物理层信息
1
| ether 00:15:5d:76:6a:fc txqueuelen 1000 (Ethernet)
|
- ether:MAC地址/硬件地址。
- txqueuelen:传输队列长度。
4.5. 统计信息
接收统计:
1 2
| RX packets 244805 bytes 420876152 (420.8 MB) RX errors 0 dropped 0 overruns 0 frame 0
|
- packets/bytes:成功接收的数据包和字节总数。
- errors:接收错误的数据包数。
- dropped:因资源不足等原因丢弃的数据包。
- overruns:接收队列溢出次数。
- frame:帧错误(CRC校验失败等)。
发送统计:
1 2
| TX packets 124485 bytes 9061530 (9.0 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
- carrier:载波错误(物理连接问题)。
- collisions:数据包冲突次数。
4.6. 举例说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.31.169.244 netmask 255.255.240.0 broadcast 172.31.175.255 inet6 fe80::215:5dff:fe76:6afc prefixlen 64 scopeid 0x20<link> ether 00:15:5d:76:6a:fc txqueuelen 1000 (Ethernet) RX packets 244805 bytes 420876152 (420.8 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 124485 bytes 9061530 (9.0 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 73782 bytes 60481665 (60.4 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 73782 bytes 60481665 (60.4 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
5. 实际应用场景
5.1. 临时修改IP地址
1 2
| ifconfig eth0 192.168.1.150 netmask 255.255.255.0 up
|
5.2. 网络故障排查
5.3. 重置网络接口
1 2
| ifconfig eth0 down ifconfig eth0 up
|
5.4. 配置多个IP地址
1 2 3 4 5
| ifconfig eth0 192.168.1.100/24
ifconfig eth0:0 192.168.1.200/24 ifconfig eth0:1 192.168.1.201/24
|
6. ifconfig 与 ip 命令对比
| 功能 |
ifconfig 命令 |
ip 命令 |
| 显示接口信息 |
ifconfig |
ip addr show |
| 启用接口 |
ifconfig eth0 up |
ip link set eth0 up |
| 禁用接口 |
ifconfig eth0 down |
ip link set eth0 down |
| 配置IP |
ifconfig eth0 192.168.1.100/24 |
ip addr add 192.168.1.100/24 dev eth0 |
| 删除IP |
ifconfig eth0 0 |
ip addr del 192.168.1.100/24 dev eth0 |
| 显示路由 |
route -n |
ip route show |
7. 注意事项
- 临时性配置:使用ifconfig进行的配置在重启后失效,永久配置需修改网络配置文件。
- 逐渐被淘汰:许多新Linux发行版默认不安装ifconfig,推荐学习使用
ip 命令。
- 权限要求:大多数ifconfig操作需要root权限。
- 诊断价值:统计信息(errors, dropped, overruns)对网络故障诊断很有帮助。
- 接口命名:现代系统可能使用不同的接口命名规则,如:
ens33:以太网接口。
wlp2s0:无线接口。
enp0s3:PCI以太网接口。