Linux 下的多 IP 地址配置方法¶
@2013-11-16 新版功能: 创建
Linux 各种发行版本采用 iproute2 方法在一个网卡上分配多 ip 地址的配置方法如下。 需要注意的是,采用 iproute2 方法配置的多 ip 地址需要使用 ip addr 命令才能 正常看到,传统的 ifconfig 方法只能看到一个 ip 地址。如果需要 ifconfig 能看到 所有的地址,则需要使用网卡别名(如 eth0:1)的方式来进行配置。
Gentoo:配置 /etc/conf.d/net
config_eth0="192.168.0.1/24 192.168.0.2/24"
Ubuntu:参考这里, 配置 /etc/network/interfaces
auto eth0 iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 iface eth0 inet static address 192.168.0.2 netmask 255.255.255.0
CentOS/RHEL:配置 /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes DEVICE=eth0 IPADDR=192.168.0.1 NETMASK=255.255.255.0 IPADDR0=192.168.0.2 NETMASK0=255.255.255.0
更多的地址使用 IPADDR1, IPADDR2 等。相关的代码请参考 /etc/sysconfig/network-scripts/network-functions:
expand_config () { local i=0 val for idx in '' {0..255} ; do ipaddr[$i]=$(eval echo '$'IPADDR$idx) if [ -z "${ipaddr[$i]}" ]; then [ "$idx" ] && [ $idx -gt 2 ] && break continue fi ...... }