概述
在 CentOS 系统中,可以通过创建网络接口别名(alias)的方式,为单个物理网卡(如 eth0)配置多个 IP 地址。这在需要运行多个服务或进行网络隔离时非常有用。本文将指导您完成配置过程。
前提条件
- 拥有 CentOS 服务器的 root 权限。
- 已通过 SSH 连接到服务器。
- 已获取需要绑定的额外 IP 地址、子网掩码和网关信息。
配置步骤
步骤一:定位网络配置文件
首先,切换到网络配置文件的目录:
cd /etc/sysconfig/network-scripts
查看默认的网络接口配置文件(例如 eth0):
cat ifcfg-eth0
典型的 ifcfg-eth0 文件内容如下:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
步骤二:配置第一个额外 IP 地址(别名 eth0:0)
复制默认配置文件并创建第一个别名配置文件:
cp ifcfg-eth0 ifcfg-eth0:0
编辑新创建的配置文件:
vi ifcfg-eth0:0
修改其内容,关键点如下:
- DEVICE: 必须设置为别名接口名
eth0:0。 - IPADDR, NETMASK, GATEWAY: 更新为第一个额外 IP 的对应信息。
- 通常,别名接口的 BOOTPROTO 设为
static,ONBOOT 设为yes。
修改后的 ifcfg-eth0:0 示例:
DEVICE=eth0:0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.101
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
注意: 在大多数配置中,只有主接口(eth0)需要配置 GATEWAY。对于别名接口(eth0:0, eth0:1 等),通常不需要也不应该设置 GATEWAY 参数,否则可能导致路由冲突。请根据您的实际网络规划决定。
步骤三:配置第二个额外 IP 地址(别名 eth0:1)
重复上述过程,创建第二个别名配置文件。请注意,原文此处有笔误(复制命令目标文件名错误),正确命令如下:
cp ifcfg-eth0 ifcfg-eth0:1
编辑配置文件:
vi ifcfg-eth0:1
修改内容,将 DEVICE 改为 eth0:1,并设置第二个额外 IP 的地址信息:
DEVICE=eth0:1
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.102
NETMASK=255.255.255.0
# 通常别名接口不设置 GATEWAY
# GATEWAY=192.168.1.1
步骤四:重启网络服务并验证
完成所有配置文件的编辑后,重启网络服务以使更改生效:
systemctl restart network
注意: 在 CentOS 7 及以上版本,推荐使用 systemctl 命令。对于 CentOS 6,可使用 service network restart。
使用以下命令验证配置是否成功:
ip addr show eth0
或者使用传统的:
ifconfig
您应该能看到 eth0、eth0:0、eth0:1 等接口及其对应的 IP 地址。
故障排除与注意事项
- SSH 连接超时: 如果在修改配置后出现 SSH 连接超时,可能是由于错误的网关配置或网络服务重启失败。此时需要通过服务器控制台提供的 VNC 或本地控制台登录进行修复。
- 配置语法: 确保配置文件中没有语法错误,例如多余的空格或拼写错误。
- 持久化: 使用
ONBOOT=yes确保配置在系统重启后依然有效。 - 现代方法: 在较新的 CentOS/RHEL 8+ 系统中,推荐使用
nmcli或nmtui工具管理网络,它们能更好地处理 NetworkManager 服务。
扩展:使用 ip 命令临时添加 IP(重启后失效)
如需临时添加 IP 地址进行测试,可使用 ip 命令:
ip addr add 192.168.1.101/24 dev eth0 label eth0:0
要删除临时添加的 IP:
ip addr del 192.168.1.101/24 dev eth0