运行 Ubuntu 16.04LTS 的嵌入式硬件有两个 NIC,eth0 和 eth1。在生产中,eth0 已连接,应使用 192.168.0.1 作为 /24 子网外地址的网关。对于诊断或现场升级,我希望能够将 eth1 连接到我的 Windows PC 并使用 Windows 10 Internet 连接共享,默认情况下它提供 192.168.137.1 的网关。
因为没有 wifi,而且我试图保持简单,所以我卸载了 Ubuntu NetworkManager,只使用 /etc/network/interfaces。
最简单的目标是让任何处于活动状态的接口都设置网关,额外的好处是能够使用 metric 命令将某个接口设置为更高优先级,但我没有这个也可以。我希望能够避免使用特定命令设置路由表。
我梦想的 /etc/network/interfaces 文件如下所示:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
metric 100
dns-nameservers 8.8.8.8
auto eth1
iface eth1 inet static
address 192.168.137.2
netmask 255.255.255.0
gateway 192.168.137.1
metric 50
dns-nameservers 8.8.8.8
加上让它真正工作所需的一切,因为它目前不符合预期。目前,当 eth0 插入时,它工作正常,但当仅连接 eth1 时,它可以看到本地子网,但不会通过网关路由任何内容。
我觉得这不是很复杂,但我在类似的帖子中似乎找不到简单的解决方案
答案1
您的metric
线路颠倒了。数字越小,优先级越高。
您也可以只对 eth1 使用 DHCP,因为 Windows ICS 具有内置的 DHCP 服务器。