如何为现有接口设置额外的 IP?

如何为现有接口设置额外的 IP?

我有一个接口eth0,我想给它一个额外的虚拟 IP。我通过以下方式实现此目的:

ifconfig eth0:0 ip.address.goes.here netmask subnet.address.goes.here

这工作正常,然而,当我重新启动时,它就丢失了。

我尝试进行编辑/etc/network/interfaces以添加以下内容:

auto eth0:0 iface eth0:0 inet static
    address ip.address.goes.here
    netmask subnet.address.goes.here

但是,重新启动后,eth0 的静态 IP 可以正常加载,但是 eth0:0 虚拟 IP 根本没有加载。

那么,如何才能永久添加eth0:0虚拟IP呢?

答案1

你不应该这么做eth0:0,而应该这么做:

  • /etc/network/interfaces按照通常方式配置您的(一个)静态 IP 地址:

    # The primary network interface
    auto eth0
    iface eth0 inet static
    address 192.168.0.201
    network 192.168.0.0
    netmask 255.255.255.0
    broadcast 192.168.0.255
    gateway 192.168.0.1
    
  • 添加另一个 IP 至接口,在上面之后立即添加这个:

    up /sbin/ip addr add 192.168.0.203/24 dev eth0
    down /sbin/ip addr del 192.168.0.203/24 dev eth0
    
  • 完整文件应该喜欢

现在,如果你通过运行检查配置了哪些 IP 地址ip addr show,则会显示两个地址:

2:eth0:mtu 1500 qdisc pfifo_fast 状态UP qlen 1000
    链接/以太 08:00:27:1d:fa:0b brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.201/24brd 192.168.0.255 范围全局 eth0
    inet 192.168.0.203/24范围全局辅助 eth0

感谢 Lekensteyn 为我指明了正确的方向。互联网上的每个网站都只是在谈论eth0:0辅助 IP 地址。看起来是正确的方法。

答案2

如果您想以“传统”方式做事,相关部分/etc/network/interfaces应该是这样的:

auto eth0:0
iface eth0:0 inet static
    address ip.address.goes.here
    netmask subnet.address.goes.here

而不是这样,你犯了一个错误:

auto eth0:0 iface eth0:0 inet static
    address ip.address.goes.here
    netmask subnet.address.goes.here

相关内容