如何在Ubuntu 14中为接口添加额外的IP地址

我想要有线接口同时获取一个DHCP地址,并且还要为了能够在同一链路上与具有固定IP地址的设备进行通信而设置一个别名的固定地址。
在搜索Ubuntu中的IP地址别名时,我找到了这篇文章如何使用Network Manager GUI添加接口别名?。不幸的是,Ubuntu 14中的Edit Connections GUI没有"additional addresses"按钮。
这个功能移到哪里了?

1我已经用另一张截图更新了那个答案,看看是否有帮助。但无论如何,我认为GUI不允许您同时拥有DHCP和静态地址 - 多个静态地址是可以的。 - muru
正确 - 我尝试将其设置为手动模式,添加我的静态地址,然后切换回DHCP。这样做会删除任何手动地址。 - tim11g
4个回答

跳过图形界面,通过命令行来完成。
以下链接提供了关于如何临时创建别名以及如何编辑接口文件以使更改永久生效的详细信息。

http://www.cyberciti.biz/faq/linux-creating-or-adding-new-network-alias-to-a-network-card-nic/

如果网站停止运行,可以在以下位置获取信息:

使用ifconfig命令行

您可以使用ifconfig命令来配置网络接口和别名。例如:

  • eth0 网卡IP地址为192.168.1.5
  • eth0:0 第一个网卡别名:192.168.1.6

要设置eth0:0别名,请使用root用户执行以下命令:

# ifconfig eth0:0 192.168.1.6 up

验证别名是否正常运行,请使用以下命令:
# ifconfig -a

# ping 192.168.1.6

然而,如果您重新启动系统,您将会失去所有的别名。要使其永久生效,您需要将其添加到网络配置文件中。
# vi /etc/network/interfaces

将以下内容追加到文件中(这是对现有信息的补充,而不是替换)
auto eth0:1
iface eth0:1 inet static
name Ethernet alias LAN card
address 192.168.1.7
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0

保存并关闭文件。重新启动网络:
# /etc/init.d/networking restart

谢谢!"ifconfig eth0:0 192.168.1.6 up" 命令非常有效。我不需要它持久化,所以这是一个完美的解决方案。 - tim11g
2只需注意:ip工具现在是操作接口的推荐方法(http://serverfault.com/a/458639/115256)。这是使用说明:http://askubuntu.com/a/547297/53738。 - dess
为什么在上面的配置中没有“网关”条目? - Colin 't Hart
3@Colin'tHart:你只能有一个“默认网关”(特殊情况除外,但那是另一回事),所以如果“主”网络配置已经有一个网关,你就不应该在这个别名中添加任何网关。如果“主”网络没有网关,你可以在别名中添加网关,尤其是如果它与此IP范围相关。 - higuita


你如何使这个变化“永久”(在2022年)? - Gwyneth Llewelyn
@GwynethLlewelyn 请编辑适用于您的系统的正确配置文件。 - ceving

我刚从我的同事那里学到了一个技巧,涉及以下内容:

假设 eth_lan0 被设置为有线网络的名称,并且首先使用类似于 netplan 的方式配置了 IP 地址为 192.168.1.2,那么您可以通过以下方法添加一个别名以连接到另一个内部网络,例如具有模式为 10.42.0.x 的 IP:

sudo ifconfig eth_lan0:1 10.42.0.2

这假设IP地址10.42.0.2尚未分配给您的局域网,并且您的主机已连接到两个网络,一个使用IP地址192.168.1.x,另一个使用10.42.0.x。通过运行ifconfig命令检查是否设置了别名,以确定是否成功。然后,建议您在两个本地网络上ping要连接的主机,以确保一切正常运行。

你可以按照以下步骤在Ubuntu网络接口中添加IP地址:
1. 通过ssh登录到Ubuntu服务器。 2. 输入以下命令。
``` nano /etc/network/interfaces ```
3. 在下面的位置输入接口别名`eth0:0`。
(注意:如果你已经有了接口别名`eth0:0`,你可以添加`eth0:1`或`eth0:2`来添加额外的IP地址)
#secondary ip address
auto eth0:0
iface eth0:0 inet static
address 1*3.2*8.149.***
netmask 255.255.255.***

以下命令将启用网络中添加的接口别名。 ifconfig eth0:0 1*3.2*8.149.*** up 重新启动网络服务。 /etc/init.d/networking restart 使用以下命令检查新添加的IP地址。 ifconfig 完成。