如何配置 NAT 来转发外部请求?

如何配置 NAT 来转发外部请求?

我有三台 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

相关内容