我有三台 Raspberry Pi 连接到 Linux 机器,还有一台计算机连接到路由器,该路由器连接到互联网。我的目标是配置每台 Raspberry Pi,使它们可以相互通信,同时还自动通过主计算机的路由器路由任何互联网请求,这样我就可以 ping 实际网站并获得响应。
到目前为止,我已经使用过:
sudo ifconfig eth0 192.168.1.X netmask 255.255.255.0 up
sudo route add default gw 192.168.1.254 eth0
其中,对于每台 Linux 机器,X 分别为 10、11 和 12。可以访问 Internet 的机器的 IP 地址是 192.168.1.254,但我现在需要配置 NAT,以便 IP 表能够正确转发使用 Raspberry Pi 的 Linux 机器的 Internet 请求。
截至目前,已连接互联网的机器的IP表为:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 1 0 0 eth1
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth1
我对网络工程还不太熟悉,所以任何帮助/建议都将不胜感激。目前,所有四台机器都可以互相 ping 并得到响应。我面临的唯一问题是让三台 Linux 机器 ping 这样的网站ping www.google.com
。
答案1
您只需要确保每个 Pi 都在同一个子网中,例如:
192.168.1.1 => 路由器 192.168.1.2 => Pi 1 192.168.1.3 => Pi 2 192.168.1.4 => Pi 3
然后将 Pi 的默认网关配置为 192.168.1.1。应该没问题。这样,当处于同一子网中时,Pi 可以看到彼此,并在需要访问其他子网时使用默认网关。
确保,如果路由器也是一台电脑来配置ip转发: http://www.ducea.com/2006/08/01/how-to-enable-ip-forwarding-in-linux/
(最后一点更多的是“服务器故障”,但第一部分不是)
按照要求完成这些操作后,您应该能够 ping 8.8.8.8(谷歌的 DNS)。如果此操作可行,而 ping 'www.google.com' 不成功,则需要配置 DNS 服务器。(在 Linux 中:resolv.conf)您可以使用谷歌的 DNS 作为您的 DNS 服务器地址(8.8.8.8)
总结一下:
- 配置子网
- 配置默认网关
- 将路由机配置为路由器
- 在客户端(和路由器)上配置 DNS