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

wil*_*hil 8 server networking

我有一个 interface eth0,我想给它一个额外的虚拟 IP。我通过以下方式实现了这一点:

ifconfig eth0:0 ip.address.goes.here netmask subnet.address.goes.here
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是,当我重新启动时,这会丢失。

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

auto eth0:0 iface eth0:0 inet static
    address ip.address.goes.here
    netmask subnet.address.goes.here
Run Code Online (Sandbox Code Playgroud)

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

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

Ste*_*zzo 12

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
    
    Run Code Online (Sandbox Code Playgroud)
  • 通过在上述之后添加另一个 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
    
    Run Code Online (Sandbox Code Playgroud)
  • 完整的文件应该看起来这样

现在,如果您通过运行检查配置了哪些 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/24 brd 192.168.0.255 范围全局 eth0
     inet 192.168.0.203/24范围全局二级 eth0

感谢 Lekensteyn 为我指明了正确的方向。互联网上的每个站点都只讨论eth0:0辅助 IP 地址。似乎是正确的方法。

  • 发布的 pastebin 条目不再可用:`您正在寻找的粘贴当前不存在。` (5认同)
  • 是的,ifconfig 已被弃用,取而代之的是`iproute2` 套件(ip 命令)。`ifconfig` 永远不会离开我的肌肉记忆。另外**重要**注意,`ifconfig` 看不到`iproute2` 添加的地址别名!(这不会使它们的工作效果变差)。 (2认同)
  • @威尔希尔,哦!你教了我一些东西,如果你添加一个标签,它*确实*会出现在 ifconfig 中!如果您不使用标签,则不会。谢谢 :) (2认同)