Ubuntu 第二个静态 IP,ifconfig,/etc/network/interfaces

Ubuntu 第二个静态 IP,ifconfig,/etc/network/interfaces

我想为我的本地 Ubuntu 11.10 台式机添加第二个静态 IP,并在重启后自动可用。到目前为止,我已成功使用 ifconfig 为我的主网​​络接口临时设置别名:

# ifconfig eth1:0 192.168.178.3 up
# ifconfig
eth1      Link encap:Ethernet  HWaddr c8:60:00:ef:a3:d9  
          inet addr:192.168.178.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ca60:ff:feef:a3d9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:61929 errors:0 dropped:0 overruns:0 frame:0
          TX packets:64034 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:45330863 (45.3 MB)  TX bytes:28175192 (28.1 MB)
          Interrupt:42 Base address:0x4000 

eth1:0    Link encap:Ethernet  HWaddr c8:60:00:ef:a3:d9  
          inet addr:192.168.178.3  Bcast:192.168.178.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:42 Base address:0x4000

但是,当我将以下内容添加到 /etc/network/interfaces 时,重新启动后别名并未按预期启动并运行:

# vi /etc/network/interfaces
auto eth1:0
iface eth1:0 inet static
    address 192.168.178.3
    netmask 255.255.255.0

我想知道要配置什么才能让它工作。顺便说一句,我正在运行 gnome shell。

答案1

网络管理器是否管理接口?我已将网络管理器配置为不接触我通过其管理的接口,/etc/network/interfaces方法是/etc/NetworkManager/NetworkManager.conf

[ifupdown]
managed=false

当网络管理器被禁用时,我们可以查看一下/etc/network/interfaces。不再推荐使用接口别名,但ip(8) 可以向一个接口添加多个地址。这可以/etc/network/interfaces按如下方式完成:

auto eth1
iface eth1 inet static
        address 192.168.178.2
        netmask 255.255.255.0
        gateway 192.168.178.1
        up ip addr add 192.168.178.3/24 dev eth1
        down ip addr del 192.168.178.3/24 dev eth1

阅读手册页接口(5)知识产权(8)了解更多信息。

答案2

根据我的经验,您必须禁用网络管理器来进行此类设置,因为它会干扰静态配置并且存在大量带有伪接口的错误。

您有多种选择:

  • 您可以在 /etc/NetworkManager/NetworkManager.conf 中禁用 IP 管理,并通过 /etc/network/interfaces 自行管理接口
  • 您可以删除网络管理器并安装 Gnome 网络管理器。
  • 您可以继续使用 NM 并在 /etc/NetworkManager/dispatcher.d 中编写一个钩子脚本 - 有关更多信息,请参阅 NetworkManager(8)

答案3

您的主 eth1 配置是在接口文件中定义的吗?还是使用网络管理器定义的?我建议您在接口文件中完成所有操作。这样对服务器来说更可靠。但是,当然,如果您在 nm 中管理 eth1,在接口文件中管理 eth1:0... 您可能会遇到问题。话虽如此,您的 for 中的语法乍一看似乎是正确的(假设您也在同一个文件中定义了 iface eth1。

相关内容