Linux 下的多 IP 地址配置方法 ============================ .. versionadded:: @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 ...... }