我家里有一台笔记本电脑,想用作服务器(Ubuntu 20.04.3 LTS)。
eth0
我希望两者的 IP 保持不变wlan0
(原因:无论笔记本电脑如何连接到互联网,我在路由器上设置的端口转发都能保持功能)当我断开电缆时,我将启用 wifi,反之亦然,当连接电缆时,我将禁用 wifi 以防止 IP 冲突。(使用
nmcli radio wifi on/off
)
这是我的配置:
/etc/netplan/00-installer-config.yaml:
network:
ethernets:
eth0:
optional: true
dhcp4: no
addresses:
- 192.168.0.189/24
# gateway4: 192.168.0.1
nameservers:
addresses:
- 194.168.4.100
- 194.168.8.100
wlan0:
dhcp4: no
addresses:
- 192.168.0.189/24
gateway4: 192.168.0.1
nameservers:
addresses:
- 194.168.4.100
- 194.168.8.100
version: 2
通过这种设置,我遇到了以下问题:
当我连接网线并禁用 wifi 时,数据包将不知道如何到达互联网,因为 eth0 没有与之关联的网关(因为如您所见,它被注释掉了)。
如果我尝试反转设置(取消注释 eth0 上的网关并将其注释掉以表示 wifi),当我启用 wifi 并拔下电缆时,数据包将再次不知道如何到达互联网。
如果在两个接口上取消注释gateway4并执行
sudo netplan apply
,我会收到以下错误:
** (generate:2959): 警告 **: 22:54:14.848: 验证默认路由一致性时遇到问题。请设置多个路由表并改用
routing-policy
。错误:IPv4 的默认路由声明冲突(表:main,度量:default),首先在 wlan0 中声明,但也在 eth0 中声明
那么我该怎么做才能让它发挥作用呢?
编辑: 因此,尽管存在错误,但实际上第三个选项似乎可以正常工作。即使两个接口同时连接,它实际上也可以工作(这是一个好处!)。但我仍然不明白错误消息和/或是否有人会因为某种原因认为这是一个糟糕的设置。