linux单网卡可配置多个ip地址,分临时(ip addr add/ifconfig)和永久(network-scripts/netplan)两类方式,支持不同网段,适用于虚拟主机、多服务隔离等场景。

在 Linux 中配置网卡子接口(即 IP 地址别名),本质是为同一块物理网卡绑定多个 IP 地址,形成逻辑上的 eth0:0、eth0:1 等子接口。这种做法不依赖额外硬件,适用于虚拟主机、多网段服务、测试环境等场景。关键在于区分临时生效和永久生效两种方式,并适配不同发行版的网络管理机制。
用 ip 命令快速添加临时别名
适合验证、调试或短期使用,重启即失效,无需修改配置文件。
- 给 eth0 添加一个别名 IP:sudo ip addr add 192.168.5.100/24 dev eth0 label eth0:0
- 添加第二个别名(无需 label,系统自动识别为 secondary):sudo ip addr add 192.168.5.101/24 dev eth0
- 查看效果:ip addr show eth0 —— 会看到带 scope global secondary 标记的地址
- 删除某个别名:sudo ip addr del 192.168.5.100/24 dev eth0
通过 ifconfig 配置传统别名(已逐步弃用)
ifconfig 是较老的工具,部分新系统默认未安装,且不支持 IPv6 别名。但某些 CentOS/RHEL 7 以下系统仍常用。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 启用 eth0:0 并分配地址:sudo ifconfig eth0:0 192.168.5.200 netmask 255.255.255.0 up
- 添加更多别名(编号 0–255):sudo ifconfig eth0:1 10.0.0.10 netmask 255.255.255.0 up
- 查看所有接口:ifconfig(注意:只显示带冒号的别名,不显示 ip addr 的 secondary 地址)
- 停用别名:sudo ifconfig eth0:0 down
永久配置:CentOS/RHEL 7 及更早(network-scripts)
需编辑 `/etc/sysconfig/network-scripts/` 下的配置文件,系统启动时由 network 服务加载。
- 复制主配置生成别名文件:sudo cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0
- 编辑新文件,确保包含以下关键项:
DEVICE=eth0:0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.5.200
NETMASK=255.255.255.0 - 重启网络服务:sudo systemctl restart network
永久配置:Ubuntu 18.04+ / Debian 10+ / 新版 Fedora(Netplan)
Netplan 使用 YAML 文件统一声明网络状态,推荐直接在主网卡配置中添加多个地址,而非创建别名设备名。
- 编辑 Netplan 配置(如 /etc/netplan/01-netcfg.yaml)
- 在对应网卡段下添加 addresses 列表:
addresses:
- 192.168.5.10/24
- 192.168.5.11/24
- 192.168.5.12/24 - 应用变更:sudo netplan apply
验证与排错要点
无论哪种方式,配置后都建议执行三步验证:
- ip addr show eth0 —— 确认地址已出现在接口下,secondary 标识代表别名
- ip route show | grep eth0 —— 检查是否自动生成对应直连路由(通常会)
- ping -I eth0:0 192.168.5.1 或 ping -I 192.168.5.10 192.168.5.1 —— 指定源地址测试连通性










