Linux

如何從核心命令行添加虛擬網路 IP 地址?

  • October 27, 2015

我想添加一個虛擬 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設備。

有沒有辦法做到這一點?

這似乎不可能。

參數的核心文件ip說語法是

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>

只有一個client-ip

Linux IP-Aliasing 文件說不推薦使用冒號形式。

並且該ip選項僅將:其視為單詞分隔符,而沒有提供任何特殊方式來轉義文字:

https://github.com/torvalds/linux/blob/master/net/ipv4/ipconfig.c#L1614

引用自:https://unix.stackexchange.com/questions/238999