Linux单网卡多IP推荐用ip addr add添加secondary地址;临时配置可用ifconfig eth0:x或ip addr add;永久配置依发行版而异:RHEL/CentOS用network-scripts别名文件,Ubuntu/Debian用interfaces多地址声明,批量连续IP宜用range方式。

Linux 中配置 IP 别名(如 eth0:0)是实现单网卡多 IP 的传统方式,但需注意:它本质是逻辑接口,实际地址仍归属主网卡;现代系统更推荐直接用 ip addr add 绑定 secondary 地址,更简洁、兼容性更好。是否用别名,取决于你的发行版、管理工具和需求场景。
临时添加 IP 别名(重启失效)
适合测试或应急,无需编辑配置文件:
-
用 ifconfig 创建别名接口:
sudo ifconfig eth0:0 192.168.1.101 netmask 255.255.255.0 up
再加一个:sudo ifconfig eth0:1 192.168.1.102 netmask 255.255.255.0 up -
用 ip 命令添加 secondary 地址(不创建别名接口):
sudo ip addr add 192.168.1.101/24 dev eth0sudo ip addr add 192.168.1.102/24 dev eth0
查看效果:ip addr show eth0,会标出secondary -
删除方式不同:
sudo ifconfig eth0:0 down只停别名接口;sudo ip addr del 192.168.1.101/24 dev eth0直接删地址;sudo ip addr flush dev eth0清空所有 secondary 地址(保留 primary)
CentOS/RHEL 永久配置别名(基于 network-scripts)
适用于未启用 NetworkManager 的传统环境,需严格匹配文件名与参数:
- 复制主配置并重命名:
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0 - 编辑
ifcfg-eth0:0,确保三处一致:DEVICE=eth0:0(必须含冒号和数字)BOOTPROTO=static(不用none,旧脚本兼容性差)ONBOOT=yes(否则systemctl restart network不加载) - 删掉
GATEWAY、DNS等主接口专属项,只留:IPADDR=192.168.1.101NETMASK=255.255.255.0 - 重启网络:
sudo systemctl restart network
Ubuntu/Debian 永久配置(interfaces 文件)
不依赖别名接口名,直接在 /etc/network/interfaces 中声明多个地址:
- 编辑文件:
sudo nano /etc/network/interfaces - 在主接口块后追加(无需新建别名设备):
auto eth0:0iface eth0:0 inet staticaddress 192.168.1.101netmask 255.255.255.0 - 生效命令:
sudo ifdown eth0 && sudo ifup eth0(或重启 networking 服务)
批量 IP 推荐用 range 方式(RHEL/CentOS)
要绑定 10+ 个连续 IP(如 192.168.1.100–192.168.1.120),别建 21 个 ifcfg-eth0:x 文件:
- 新建
/etc/sysconfig/network-scripts/ifcfg-eth0-range0 - 关键参数不能错:
IPADDR_START=192.168.1.100IPADDR_END=192.168.1.120CLONENUM_START=0(对应 eth0:0, eth0:1…)NO_ALIASROUTING=yes(避免路由绕行,提升性能) - 重启网络即可自动分配











