Linux单网卡绑定多IP分临时(ip addr add)和永久(RHEL系用ifcfg-eth0:x、Debian系改interfaces)两类配置,推荐CIDR格式,避免别名接口误导,注意网关唯一性和策略路由验证。

Linux 中单网卡绑定多个 IP 地址是常见需求,比如部署多站点、跨网段通信或高可用服务。配置分两类:临时生效(重启即丢) 和 永久生效(重启保留),方法因发行版略有差异,但底层逻辑一致。
临时添加多个 IP(所有发行版通用)
用 ip addr add 命令最稳妥,推荐使用 CIDR 格式(如 192.168.1.101/24):
ip addr add 192.168.1.101/24 dev eth0ip addr add 10.0.0.5/24 dev eth0ip addr add 172.16.0.8/24 dev eth0
执行后,用 ip addr show eth0 查看,新增地址会标为 secondary;删除某个 IP 用 ip addr del 192.168.1.101/24 dev eth0。注意:ifconfig eth0:0 xxx 也能加,但它是创建别名接口,现代系统更倾向直接绑定到主设备。
永久配置(按发行版区分)
CentOS/RHEL(包括 Rocky/AlmaLinux):在 /etc/sysconfig/network-scripts/ 下新建别名配置文件:
- 复制主配置:
cp ifcfg-eth0 ifcfg-eth0:0 - 编辑
ifcfg-eth0:0,确保三处一致:DEVICE=eth0:0、文件名、ONBOOT=yes - 关键字段:
BOOTPROTO=static、IPADDR=192.168.1.101、NETMASK=255.255.255.0 - 多个连续 IP 推荐用
ifcfg-eth0-range0文件,设IPADDR_START、IPADDR_END、NETMASK=255.255.255.255、CLONENUM_START=0
Debian/Ubuntu:直接编辑 /etc/network/interfaces:
- 在原有
iface eth0 inet static块下追加: up ip addr add 10.0.0.5/24 dev eth0up ip addr add 172.16.0.8/24 dev eth0- 或用
address多行写法(需确认 ifupdown2 支持)
注意事项与避坑点
别名接口(如 eth0:0)只是逻辑标识,内核实际把所有地址都挂载在 eth0 设备上;ip addr flush dev eth0 会清掉 secondary 地址,但不会动 primary。
- 网关只应在主配置(如 ifcfg-eth0)中定义一次,多个别名里写 GATEWAY 会导致路由冲突
- 若启用 NetworkManager,它可能忽略
/etc/sysconfig/network-scripts/下的手动配置,建议停用或改用 nmcli 管理 - 不同网段 IP 添加后,系统自动添加对应直连路由,无需手动
route add;但若需指定源地址出向,应配策略路由 - 验证是否生效:ping 新 IP、检查
ip route get 8.8.8.8 from 192.168.1.101看出口是否符合预期
不推荐的旧方式
ifconfig eth0:0 xxx 这类命令虽能用,但输出中显示为独立接口,容易误导;且在 systemd-networkd 或新版 NetworkManager 环境下兼容性差。现代运维应统一使用 ip addr 系列命令和声明式配置文件。


















