直接使用ifconfig为lo0添加一个alias:
sudo ifconfig lo0 inet 202.165.103.233 netmask 255.255.255.255 alias
去掉这个alias:
sudo ifconfig lo0 inet 202.165.103.233 netmask 255.255.255.255 -alias
机器启动时自动添加这个alias:
在/etc/rc.conf文件中加入
ifconfig_lo0_alias0=”inet 202.165.103.233 netmask 255.255.255.255″
昨天就是就按照这个来操作,不过以为是文档有错误,所以自做聪明的把255.255.255.255改成了255.255.255.0。加是加上了,可是加上以后,所有关于网络的操作都变得很慢。可是ping和traceroute都很正常。不理解为啥。查了查文档,发现了下面的说明:
一个网卡绑定多个ip时不要把两个地址设置在同一个网段,如果确实要求两个地址在同一个网段,把“虚拟地址”网络掩码设置为255.255.255.255。如果位于不同的子网,那么就直接使用相应子网的正常网络掩码。
从TCP/IP的角度来说说原因吧。网络掩码的所有位都是1,就会保证TCP/IP这样来看待数据包:只要包的目的地址匹配所有位,就把该包看成本地子网上的包,它实际上是创建了一个只有一个地址的“子网”。所有发送给该地址的包以及该地址接收的包都会发送给路由器,而不会发送到LAN上。如果多个别名使用了同一个网络掩码,这些别名的广播地址也应该相同,而这样就导致了TCP/IP栈的混乱。使用全1的网络掩码,我们才能骗过ifconfig,让该命令允许单个接卡上有多个IP地址。