Ubuntu,两个网卡,但只有一个可以连接互联网

wey*_*hei 6 networking ubuntu nic route iptables

我的 Ubuntu 遇到问题,因为我无法使用 wget 或使用当前设置访问任何网站。

我有两个网卡,enp2s0 和 enp2s1。

enp2s0 连接到互联网,但连接到 NAT 路由器(IP 地址:192.168.1.2)

而对于 enp2s1,它连接到另一个没有互联网的路由器,因为它仅用于内部网络(IP 地址:10.0.0.5)

如果唯一连接的网卡是具有互联网的网卡 (enp2s0),则计算机可以访问任何网站。但是,一旦连接第二个网卡(enp2s0 和 enp2s1),计算机就不会加载任何网页、wget,甚至不会加载 apt-get update 或 apt-get install。

这与 iptables 或路由有关吗?帮助我,因为我是新手。

以下是该机器的一些当前详细信息:

$ ip route show
default via 192.168.1.1 dev enp2s0 proto dhcp metric 20100
default via 10.0.0.1 dev enp2s1 proto dhcp metric 20101
169.254.0.0/16 dev enp2s0 scope link metric 1000
192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.2 metric 100
10.0.0.0/24 dev enp2s1 proto kernel scope link src 10.0.0.5 metric 101

$ iptables -S -t nat; iptables -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT

$ ip r
default via 192.168.1.1 dev enp2s0 proto dhcp metric 20100
default via 10.0.0.1 dev enp2s1 proto dhcp metric 20101
169.254.0.0/16 dev enp2s0scope link metric 1000
192.168.1.0/24 dev enp2s0 proto kernel scope link src 192.168.1.2 metric 100
10.0.0.0/24 dev enp2s1  proto kernel scope link src 10.0.0.5 metric 101
Run Code Online (Sandbox Code Playgroud)

/etc/网络/接口

auto lo
iface lo inet loopback
Run Code Online (Sandbox Code Playgroud)

由于这是新安装的ubuntu,我们还没有对机器进行任何维护。

对于网络 10.0.0.0/24,我们希望每个连接的设备都具有网络连接(即文件共享、Web 服务器检查),并且它与互联网完全隔离......

10.0.0.5 被分配给 enp2s1 网卡,因为路由器有自己的 DHCP,10.0.0.1 是路由器网关

Pio*_*asz 5

正如上面评论中所指出的,您有两个默认路由(通过192.168.1.110.0.0.1),但只有第一个连接到互联网。如果路由表与您发布的一样,您将拥有互联网连接:每当您有两条通往同一目的地的路由时,较小的一条获胜metric

但是,由于metric不是由您分配,而是由 DHCP 客户端分配,因此 的值metric取决于接口的启动顺序。我会将您的配置更改为静态配置。/etc/network/interfaces将以下行添加到文件中:

auto enp2s0
iface enp2s0 inet static
    address 192.168.1.2
    netmask 24
    gateway 192.168.1.1

auto enp2s1
iface enp2s1 inet static
    address 10.0.0.5
    netmask 24
Run Code Online (Sandbox Code Playgroud)

并重新启动网络 ( sudo systemctl restart networking)。

PS:这是在 Ubuntu/Debian 上配置网络的最古老的方法。在新的 Ubuntu 上当然还有NetworkManagersystemd-networkd(按出现顺序)。这两者还有一个等效的配置。