从子网连接到互联网

从子网连接到互联网

我是网络新手。我在子网上有几台单板计算机(运行 Armbian 的 NanoPi NEO),我想将它们连接到互联网。我的笔记本电脑(运行 Ubuntu)通过以太网连接到一个非托管交换机,该交换机连接到我的 SBC。我的笔记本电脑还通过无线方式连接到我的家用路由器。以下是图表

现在,我可以:

  • 从我的笔记本电脑 ssh 进入 SBC
  • 从 SBC ping 我的笔记本电脑
  • 从我的笔记本电脑 ping 我的路由器
  • 从我的笔记本电脑连接到互联网

但我不能:

  • 从 SBC ping google.com
  • 从 SBC 对 192.168.0.0 网络上的任何其他计算机进行 ping 操作
  • 从互联网安装软件,例如使用 apt-get

这是 SBC 上的 /etc/network/interfaces 文件:

source /etc/network/interfaces.d/*
# Network is managed by Network manager
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
#no-auto-down eth0
iface eth0 inet static
address 192.168.2.100
netmask 255.255.255.0
gateway 192.168.2.1
dns-nameservers 192.168.2.1

以下是我的 SBC 上的 ifconfig 的输出:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.100  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe80::7cb3:e4ff:fe0f:310e  prefixlen 64  scopeid 0x20<link>
        ether 7e:b3:e4:0f:31:0e  txqueuelen 1000  (Ethernet)
        RX packets 930  bytes 83194 (81.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 770  bytes 99474 (97.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 35  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 22  bytes 1940 (1.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 22  bytes 1940 (1.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

以下是我的笔记本电脑上 ifconfig 的输出:

enx0000bab02f0c: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.1  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe80::6ba:f0f:6e4:e4d5  prefixlen 64  scopeid 0x20<link>
        ether 00:00:ba:b0:2f:0c  txqueuelen 1000  (Ethernet)
        RX packets 426  bytes 58989 (58.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 634  bytes 59439 (59.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2751  bytes 211271 (211.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2751  bytes 211271 (211.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.109  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::c439:1ed9:4faa:5a3f  prefixlen 64  scopeid 0x20<link>
        ether e4:a4:71:d4:37:c1  txqueuelen 1000  (Ethernet)
        RX packets 1711728  bytes 2313530817 (2.3 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 367535  bytes 57661749 (57.6 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

我尝试过谷歌搜索,但找不到任何有用的方法。我尝试了路由器上的静态路由选项,但也没有找到任何有用的方法(因为我不知道自己在做什么)。我想做的事情可以使用静态路由吗?谢谢!

答案1

好的,我刚刚看了你的网络图,要让它工作,你必须让你的笔记本电脑成为 SBC 的网关。(将有线接口作为网关,然后将流量路由到无线接口。如果你是新手,这不是最简单的任务。更简单的方法是将软件包下载到你的笔记本电脑,将它们 scp 到 SBC 并以这种方式工作。这是一个更简单的解决方案。这是几分钟与几小时的方法。

答案2

好的,我成功了。此页面有所帮助:https://help.ubuntu.com/community/Internet/ConnectionSharing

基本上,您需要做的是在 Ubuntu 笔记本电脑上运行 nm-connection-editor,然后选择 IPv4 设置选项卡,然后将方法设置为“共享给其他计算机”。然后,我单击添加,并将地址“192.168.2.1”(我的笔记本电脑在子网上的地址)、网络掩码 24 和网关留空。

相关内容