当我添加 2 个接口(eth0局域网,eth1WAN)使用静态 IP(或者也可以使用 DHCP),Ubuntu 18.04 Server 正在添加 2 个默认网关。这不是目标。
我怎样才能仅定义 1 个默认网关?
文件:/etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 172.16.1.22/16
gateway4: 172.16.0.1
nameservers:
search: [mydomain.internal]
addresses: [172.16.1.2, 172.16.1.1]
eth1:
addresses:
- 172.19.3.235/24
gateway4: 172.19.3.1
nameservers:
addresses: [195.50.xxx.xxx,195.50.xxx.xxx]
ip route
显示:
用户@服务器:~$ ip 路由 默认通过 172.19.3.1 dev eth1 proto static 默认通过 172.16.0.1 dev eth0 proto static 172.16.0.0/16 dev eth0 proto 内核范围链接 src 172.16.1.22 172.19.3.0/24 dev eth1 proto 内核范围链接 src 172.19.3.134
2 个默认 GW......
在我的例子中,默认网关来自eth1是我唯一需要的。
答案1
只需从接口中删除网关配置eth0
。
省略这一行gateway4: 172.16.0.1
。
您仍然可以172.16.x.y
通过 访问子网中的主机eth0
,因为它直接连接到那里。
如果需要访问该网络中的其他主机(例如,具有私有地址的内部网RFC1918 范围),然后只需添加静态路由即可使用 172.16.0.1 网关访问这些网络。请参阅此引用用于 Netplan 中的路由,它应该可以帮助您添加静态路由。
如果你通过 DHCP 获取 IP,那么应该基本相同...但你需要 DHCP 服务器为你分配一个 IPeth0
不是设置任何网关... Netplan 中似乎没有很好的方法来禁用从 DHCP 收到的网关。(虽然 networkd 可以做到这一点,但请参阅另一个答案上的这个评论以尝试解决该问题。