注意:我没能在该问题标记的任何重复项中找到直接的答案。问题是“正确答案”似乎在很大程度上取决于您正在运行哪个版本以及您是否拥有桌面或服务器配置文件。我两者都有,因为我安装了 lubuntu-core 来提供一些基本的远程 X 功能,而且似乎还安装了 NetworkManager,但我们更喜欢手动编辑网络配置,而不是使用 GUI 工具。
情况是,我有一台远程 Ubuntu 14.04 服务器,需要重新配置网络。我需要安全地eth1
向远程系统添加桥接接口,而不会破坏远程连接。我有一个新的 /etc/network/interfaces 文件想要加载,但由于我没有一台等效的机器来测试它,也没有对服务器的物理访问权限,所以我对我的新配置有一些疑问:
- 以下文件中的网关配置和指标对于我要执行的操作是否有效?
- 网络管理器会覆盖或干扰我在这里做的事情吗?目前,当我使用
ifup eth1
网络管理器时,它会自动关闭。我担心禁用 NM 会切断远程连接,而且 - 如果我使用更新的文件和当前配置重新启动系统,它是否应该能够在重新启动时接收远程 SSH 连接?
服务器当前正在运行 NetworkManager,但我不需要它。我只关心 /etc/network/interfaces 中的配置是否被使用,以及机器在重新配置的所有阶段是否仍可进行远程 SSH 登录(即,我不想因为配置错误而被锁定,或者在没有脚本或自动重启的情况下关闭两个接口并正确地将它们重新打开)。
eth0
是主机流量的默认接口。eth1
将成为具有自己的外部 IP 地址的 KVM 虚拟机的桥接器。两个接口都连接到同一个物理交换机并共享 XXX0/24 子网。我的理解是,我需要一个桥接器才能工作,但我还需要注意我的网关和指标,因为我在同一个网络上有 2 个接口。
主机当前具有以下 NetworkManager 状态:
# nmcli d status
DEVICE TYPE STATE
eth1 802-3-ethernet unavailable
eth0 802-3-ethernet unmanaged
并在NetworkManager.conf中配置:
[ifupdown]
managed=false
我创建了以下新配置:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address X.X.X.4
netmask 255.255.255.0
network X.X.X.0
broadcast X.X.X.255
gateway X.X.X.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers X.X.X.2
dns-search example.com
# Interfaces with lower values get used first
metric 10
### NEW BRIDGED INTERFACE ON ETH1 ###
auto eth1
iface eth1 inet static
address X.X.X.7
netmask 255.255.255.0
network X.X.X.0
broadcast X.X.X.255
# do I need gateway here or will it conflict with eth0 ?
# gateway X.X.X.1
metric 20
auto br0
iface br0 inet static
address X.X.X.200
netmask 255.255.255.0
network X.X.X.0
broadcast X.X.X.255
gateway X.X.X.1
bridge_ports eth1
bridge_stp off
bridge_maxwait 5
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers X.X.X.2
dns-search example.com
metric 30
不过,正如我所说,这个新配置刚刚添加到服务器,只有ifup eth1
在 NM 决定将其删除后才能正常工作。这让测试变得很麻烦,但我担心简单地禁用 NM 可能会更糟糕。
答案1
最后我只是用以下方式替换了 eth1 配置
auto eth1
iface eth1 inet manual
... 我祈祷一切顺利,然后跑了reboot
。系统恢复了,eth0 和 br0 接口正确,尽管这个“解决方案”让我很不满意,而且我确信有更好的答案。