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 的系统(如纯服务器环境)。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 别名不能单独定义为
auto eth0:0;必须写成auto eth0+ 多个iface块 - 每个别名用独立
iface块,设备名写成eth0:0,但底层仍是绑定到eth0:auto eth0<br>iface eth0 inet static<br> address 192.168.1.10<br> netmask 255.255.255.0<br><br>iface eth0:0 inet static<br> address 192.168.2.10<br> 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:<br> version: 2<br> ethernets:<br> eth0:<br> addresses:<br> - 192.168.1.10/24<br> - 192.168.2.10/24<br> routes:<br> - to: default<br> via: 192.168.1.1
- 如果硬要模拟
eth0:0标签,加label: eth0:0(需 Netplan ≥ 0.103):- 192.168.2.10/24<br> label: eth0:0
- 应用配置必须用
sudo netplan apply,不要手动改/run/systemd/network/下的文件 - Netplan 不支持 per-address DNS 或 gateway,所有地址共用同一套路由和解析设置
真正容易被忽略的是:别名地址之间、以及别名与主地址之间,**没有隔离机制**。它们共享 MAC、ARP 表、连接跟踪、防火墙链匹配(除非用 -s 显式指定源地址)。想实现服务级隔离,得靠策略路由或 network namespace,而不是靠别名本身。

















