我正在运行 Ubuntu 20.04.4 LTS,很难让两个 NIC 在不同的网络上同时工作。
我有连接到互联网的网络 1 和连接到 NAS 和其他资源的网络 2。
如果我断开另一个,每个都会单独工作。但它们不能同时工作。我尝试了其他旧线程中的一些建议,例如确保它们没有相同的子网,确保只有一个有默认网关,并且据我所知它们的 IP 不在同一范围内。我还确保它们使用不同的 MAC 地址,以防万一
当一个设备停止工作时,它就真的停止了,就像在路由器上,它不再显示该设备,如果有帮助的话。
我不确定如何安全地共享 ifconfig 或路由,而不会将我的 ip 暴露给 ddos 或 mac 地址以确保网络安全,但如果有人指导我,可以分享我需要的信息来帮助你帮助我 =)
我认为我需要做的是将它们设置为静态 IP、单独的网络掩码,只有一个具有默认网关。我似乎无法通过 GUI 完成此操作(或验证我是否已完成此操作)。通过命令行执行此操作的帮助会很棒。
我确实看到了一些关于这个主题的旧帖子,但它们来自 Ubuntu 12 和 14,当我尝试按照工作解决方案进行操作时,他们希望我编辑的文件并不存在 =(
** 从问题中添加的信息/感谢@chili555 展示保持安全的最佳做法
当两者都已连接但只有网络 1 有效时,ifconfig:
eno8303: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.x.y netmask 255.255.254.0 broadcast 10.10.a.b
inet6 fe80::9b5a:98e3:XXXX:XXXX prefixlen 64 scopeid 0x20<link>
ether XX:XX:XX:XX:XX:Xc txqueuelen 1000 (Ethernet)
RX packets 49005255 bytes 9779685701 (9.7 GB)
RX errors 0 dropped 2 overruns 0 frame 0
TX packets 17858283 bytes 3889222415 (3.8 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 48
eno8403: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether XX:XX:XX:XX:XX:Xd txqueuelen 1000 (Ethernet)
RX packets 2107226 bytes 800274299 (800.2 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 67827 bytes 8155445 (8.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 134
netplan 只是 NetworkManager,也许这就是我需要进行更改的地方。这是我的 yaml:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
路线
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 eno8303
10.10.x.y 0.0.0.0 255.255.254.0 U 100 0 0 eno8303
10.244.x.y 0.0.0.0 255.255.0.0 U 0 0 0 zeroTeir
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 eno8303
172.17.x.y 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.x.y 0.0.0.0 255.255.0.0 U 0 0 0 br
Rinzwind 在评论中解决了这个问题,这个 netplan 链接正是我所需要的 -->https://serverfault.com/questions/939922/netplan-with-2-nics-each-connected-to-a-different-gateway/949447#949447
我不知道如何将该问题标记为已解决,但事实确实如此。
答案1
感谢@Rinzwind 和其他人,解决方案是制定自定义 netplan(https://netplan.io/),虽然我最终添加了一些特定于我的环境的自定义设置,但这是让我分别与两个网络通信的基础:
network:
version: 2
renderer: networkd
ethernets:
eno8303:
dhcp4: yes
nameservers:
search: [foo.local, bar.local]
addresses: [8.8.8.8]
eno8403:
dhcp4: yes