我想添加一个虚拟 IP 地址,这是您通常会做的事情:
ifconfig eth0:0 192.168.1.1
(或通过/etc/network/interfaces
)。但是,我想从内核命令行执行此操作,其命令格式为:
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>
但是,虚拟 IP 名称的格式使用冒号,这与内核命令行格式冲突。因此,例如,以下非虚拟设备eth0
可以正常工作:
ip=192.168.1.1:::::eth0:::
但如果我想使用虚拟设备eth0:0
,以下方法不起作用:
ip=192.168.1.1:::::eth0:0:::
(我没想到会这样,因为额外的冒号会破坏格式)。注意:在这种情况下不起作用意味着它仍然配置设备eth0
,而不是eth0:0
设备。
有什么办法可以做到这一点吗?
答案1
看来不可能。
这ip
参数的内核文档说语法是
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>
只有一个client-ip
.
这Linux IP 别名文档表示冒号形式已被弃用。
该ip
选项只是将其:
视为单词分隔符,而不提供任何特殊的方法来转义文字:
。
https://github.com/torvalds/linux/blob/master/net/ipv4/ipconfig.c#L1614