在Linux系统中,单网卡配置多IP实际上是为主接口添加额外的地址,并非创建独立的接口。临时配置的话,使用ip addr add 192.168.10.100/24 dev eth0 label eth0:0 这个命令就可以。而永久配置则因发行版的不同而有所区别:Debian/Ubuntu系统需要修改interfaces文件;CentOS/RHEL系统要用ifcfg-eth0:0文件;Ubuntu 18.04+系统则是在Netplan的addresses列表中进行设置。

别名配置不是独立的“网络接口”,而是主接口上的附加地址,ifconfig eth0:0 这类写法只是历史兼容语法,现代系统应避免依赖它做持久化配置。
用 ip addr add 临时添加别名地址
这是最直接、跨发行版通用的方式,不依赖 ifconfig(很多新系统已默认不装)。
ip addr add添加的是“地址+前缀长度”,不是“IP+子网掩码”:比如192.168.10.100/24,不是192.168.10.100 netmask 255.255.255.0- 加
label参数可模拟传统别名名(如eth0:0),但仅用于显示和管理,不影响路由或功能:sudo ip addr add 192.168.10.100/24 dev eth0 label eth0:0 - 删除时必须带完整地址+前缀:
sudo ip addr del 192.168.10.100/24 dev eth0,不认label - 别名地址不会自动创建路由——所有地址共享主接口的默认路由,也不需要单独配网关
Debian/Ubuntu 永久配置:改 /etc/network/interfaces
该方式仍被 ifupdown 工具支持,但只适用于未启用 Netplan 或 NetworkManager 的系统(如纯服务器环境)。
- 别名不能单独定义为
auto eth0:0;必须写成auto eth0+ 多个iface块 - 每个别名用独立
iface块,设备名写成eth0:0,但底层仍是绑定到eth0:auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
iface eth0:0 inet static
address 192.168.2.10
netmask 255.255.255.0 - 重启生效:
sudo ifdown eth0 && sudo ifup eth0,不是systemctl restart networking(后者可能失败) - 注意:DNS 配置(
dns-nameservers)只在主iface块生效,别名块里写无效
CentOS/RHEL 7 及以下:用 ifcfg-eth0:0 文件
这是 SysV init 时代的标准做法,仍在 RHEL/CentOS 7 上有效,但 RHEL 8+ 已弃用。
- 文件必须放在
/etc/sysconfig/network-scripts/下,命名严格为ifcfg-eth0:0(冒号不能用下划线或其它字符替代) DEVICE=eth0:0和NAME=eth0:0都要写,否则systemctl restart network会忽略该文件- 不能设
GATEWAY——别名不参与路由决策,网关由主接口承担 - 若主接口是 DHCP,别名必须是 static,且
BOOTPROTO=static不可省略
Ubuntu 18.04+ / Netplan 配置别名
Netplan 不区分“主地址”和“别名”,统一用 addresses 列表,label 字段仅控制内核接口名显示(如 eth0:0),无实际语义。
- YAML 中写多个地址即可:
network:
version: 2
ethernets:
eth0:
addresses:
- 192.168.1.10/24
- 192.168.2.10/24
routes:
- to: default
via: 192.168.1.1 - 如果硬要模拟
eth0:0标签,加label: eth0:0(需 Netplan ≥ 0.103):- 192.168.2.10/24
label: eth0:0 - 应用配置必须用
sudo netplan apply,不要手动改/run/systemd/network/下的文件 - Netplan 不支持 per-address DNS 或 gateway,所有地址共用同一套路由和解析设置
然而,真正容易被忽视的一点是:别名地址之间,以及别名与主地址之间,**并无隔离机制**。它们共同使用MAC、ARP表、连接跟踪和防火墙链匹配(除非使用 -s 明确指定源地址)。若要实现服务级别的隔离,需要依靠策略路由或network namespace,而非仅仅依赖别名本身。