我正在尝试在运行 Ubuntu 的同一台计算机上配置两个以太网连接,但我所做的每次尝试都不允许我同时启用两个以太网连接,我不明白为什么。为了更好地理解我想要做的事情,下面是对下图中所示的三台相关计算机的描述:
- 计算机 A:我的个人计算机(运行 Windows),已连接到互联网
- 计算机 B:运行 Ubuntu 22.04 的计算机,通过以太网连接到互联网和计算机 C
- C:Ubuntu 服务器 22.04,仅通过以太网连接到计算机 B
我想通过 SSH 从计算机 A 访问计算机 C。我已经在计算机 B 和 C 上设置了静态 IP:
- 在计算机 B 上:xx.yy.zz.101 为与计算机 C 的以太网端口链接的以太网端口
- 在计算机B上:xx.yy.zz.100为连接到互联网的以太网端口
- 在计算机 C 上:xx.yy.zz.102 为与计算机 B 的以太网端口链接的以太网端口
因此,我应该能够使用以下命令首先从计算机 A 访问计算机 B:
ssh xx.yy.zz.100
然后从计算机 B 到 C 使用以下命令:
ssh xx.yy.zz.102
尽管如此,我只能建立两个连接中的一个(取决于哪一个处于活动状态)。计算机 B 的 netplan 配置文件为:
---
network:
version: 2
ethernets:
enp35s0: # Connection to computer C
dhcp4: false
addresses: [xx.yy.zz.101/24] # Need to configure a static ip
gateway4: xx.yy.zz.1
enp42s0: # Connection to internet
dhcp4: false
addresses: [xx.yy.zz.100/24] # Need to configure a static ip
gateway4: xx.yy.zz.1
nameservers:
- addresses: [a.b.c.d, e.f.g.h]
命令“ip a”显示:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp35s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:13:3b:0f:8f:36 brd ff:ff:ff:ff:ff:ff
inet 10.102.100.101/24 brd 10.102.100.255 scope global enp35s0
valid_lft forever preferred_lft forever
inet6 fe80::213:3bff:fe0f:8f36/64 scope link
valid_lft forever preferred_lft forever
3: enp36s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:13:3b:0f:8f:37 brd ff:ff:ff:ff:ff:ff
4: enp42s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 2c:f0:5d:9a:e0:2c brd ff:ff:ff:ff:ff:ff
inet 10.102.100.100/24 brd 10.102.100.255 scope global enp42s0
valid_lft forever preferred_lft forever
inet6 fe80::2ef0:5dff:fe9a:e02c/64 scope link
valid_lft forever preferred_lft forever
您能帮我理解为什么不能同时使用两个以太网接口吗?我已经尝试了几种选择,比如使用具有某些优先级的路由选项,但我从未成功完成我想要做的事情,所以我不知道哪种方法简单易行。
答案1
我一直这样做,而且效果很好。
您的问题在于gateway4
。一台计算机最多只能有一个网关才能正常工作。否则,它将不知道将流量发送到哪里(除了您可直接访问的 LAN 之外)以及“其他 IP 地址”。
因此,请评论或删除第二个gateway4
。只保留一个可以上网的。
network:
version: 2
ethernets:
enp35s0: # Connection to computer C
dhcp4: false
addresses: [xx.yy.zz.101/24] # Need to configure a static ip
#gateway4: xx.yy.zz.1 -- REMOVE THIS ONE
enp42s0: # Connection to internet
dhcp4: false
addresses: [xx.yy.zz.100/24] # Need to configure a static ip
gateway4: xx.yy.zz.1
nameservers:
- addresses: [a.b.c.d, e.f.g.h]
请注意,您将gateway4
在计算机 C 上进行设置。您只是不希望在计算机 B 上进行设置,因为当流量要用于 Internet 时,从 B 向 C 发送流量是行不通的。
答案2
好吧,ip a 的输出显示接口enp35s0
和enp36s0
。您尝试配置enp35s0
和enp42s0
。重复使用gateway4
是下一个问题。gateway4
仅使用一次并使用专用路由。
答案3
感谢您的回复!删除第一个接口的网关并在与“version: 2”相同的缩进级别添加行“renderer: NetworkManager”解决了我的问题。配置文件现在是:
network:
version: 2
renderer: NetworkManager
ethernets:
enp35s0: # Connection to computer C
dhcp4: false
addresses: [xx.yy.100.101/24] # Need to configure a static ip
enp42s0: # Connection to internet
dhcp4: false
addresses: [xx.yy.100.100/24] # Need to configure a static ip
gateway4: xx.yy.100.1
nameservers:
- addresses: [a.b.c.d, e.f.g.h]
我现在可以通过 B 从我的计算机 A 连接到 C。然而,非常奇怪的是,现在我只能通过 Wifi 访问 B,而不能通过以太网访问(连接超时)。此外,当我使用以太网连接时,我无法从 A ping 计算机 B
当我重置计算机 B 的网络配置时,我可以使用 Wifi 和以太网访问,因此它链接到当前的 netplan 配置。我试图找到答案,但仍然有这个问题。你有什么想法吗?
我的笔记本电脑(计算机A)的IP配置是:
Carte réseau sans fil Wi-Fi :
Suffixe DNS propre à la connexion. . . : -------------
Adresse IPv6 de liaison locale. . . . .: -------------
Adresse IPv4. . . . . . . . . . . . . .: xx.yy.80.204
Masque de sous-réseau. . . . . . . . . : 255.255.248.0
Passerelle par défaut. . . . . . . . . : xx.yy.80.1
Carte Ethernet Ethernet :
Suffixe DNS propre à la connexion. . . : -------------
Adresse IPv6 de liaison locale. . . . .: -------------
Adresse IPv4. . . . . . . . . . . . . .: xx.yy.100.27
Masque de sous-réseau. . . . . . . . . : 255.255.255.0
Passerelle par défaut. . . . . . . . . : xx.yy.100.1