如何通过另一台电脑连接互联网?

如何通过另一台电脑连接互联网?

我有一个包含多个节点的小集群。只有一个节点(我们称之为),可以连接到互联网。所有节点都已连接,因此我们可以从一个节点 ping 到另一个节点,但我们无法从公共节点(即非根节点)访问互联网。

根节点ifconfig输出:

eth0      Link encap:Ethernet  HWaddr b8:27:eb:d8:53:25  
          inet addr:192.168.10.10  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4084 errors:0 dropped:1295 overruns:0 frame:0
          TX packets:841 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:249141 (243.3 KiB)  TX bytes:87110 (85.0 KiB)

eth1      Link encap:Ethernet  HWaddr b8:8d:12:54:75:aa  
          inet addr:158.184.27.129  Bcast:158.184.27.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1647 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:229772 (224.3 KiB)  TX bytes:68634 (67.0 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:260 (260.0 B)  TX bytes:260 (260.0 B)

wlan0     Link encap:Ethernet  HWaddr 00:0f:13:39:02:c3  
          inet addr:158.196.122.94  Bcast:158.196.123.255  Mask:255.255.252.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:127 errors:0 dropped:0 overruns:0 frame:0
          TX packets:75 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:37269 (36.3 KiB)  TX bytes:27150 (26.5 KiB)

根节点route -n输出

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         158.184.27.1    0.0.0.0         UG    0      0        0 eth1
158.184.27.0    *               255.255.255.0   U     0      0        0 eth1
192.168.10.0    *               255.255.255.0   U     0      0        0 eth0

公共节点ifconfig输出:

eth0      Link encap:Ethernet  HWaddr b8:27:eb:b3:ed:0e  
      inet addr:192.168.10.11  Bcast:192.168.10.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:5078 errors:0 dropped:2249 overruns:0 frame:0
      TX packets:1502 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:287740 (280.9 KiB)  TX bytes:179477 (175.2 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:36 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3590 (3.5 KiB)  TX bytes:3590 (3.5 KiB)

公共节点route -n输出:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.10.10   0.0.0.0         UG    0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

您知道如何从普通节点通过根节点连接到互联网吗?我对网络的了解很少,所以请尝试详细解释一下。


编辑:

考虑到 Richard Neumann 的回答,我在根节点上启用了 IP 转发。我认为根节点已设置为默认网关(请参阅公共节点route -n输出)。

但互联网仍然无法工作......


编辑2:

> traceroute 8.8.8.8
1 permonik0 (192.168.10.10) 0.972ms 0.957ms 0.922ms
2 * * *
...
30 * * *

编辑3:

我根据设置NAT本文现在我什至可以成功 ping 8.8.8.8。但我仍然无法 ping 通任何网站,看来现在还存在一些 DNS 问题。

答案1

如果 @Richard Neumann 的答案不起作用,则有可能是 DNS 问题。

echo "nameserver 8.8.8.8" >> /etc/resolv.conf

设置 IP 转发和伪装。

iptables -P FORWARD ACCEPT
iptables --table nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables --table nat --append POSTROUTING --jump MASQUERADE --source 192.168.10.10/24 
iptables-save > /root/clients.fw
echo "/sbin/iptables-restore < /root/clients.fw" >> /etc/rc.local

上述命令将启用 IP 转发,并设置防火墙iptables,允许您从客户端访问互联网。

答案2

你的根节点将不得不充当路由器对于其他节点。

您需要在 IPv4 的情况下启用 IP 转发路由器

sysctl -w net.ipv4.ip_forward = 1

要使其持久,请编辑/etc/sysctl.conf和设置:

net.ipv4.ip_forward=1

您可能还想做路由器对方的默认网关节点

如果下一跳超出你的路由器不知道网络 192.168.10.10/24,那么你需要实施网络地址解读(网络地址转换)。
看看iptables它的MASQUERADE选项。

对于可能的 DNS 问题,请参阅@Hunter.S.Thompson 的回答。

相关内容