访问位于充当防火墙的 Ubuntu VM 后面的 LAMP Web 服务器

访问位于充当防火墙的 Ubuntu VM 后面的 LAMP Web 服务器

我目前已按照以下方式设置了两个虚拟机:

                               /-----------------------\
      /-----------------\      |  Ubuntu VM            |      /---------------\
      |   Workstation   |------|  eth1 : 192.168.0.x   |      |  Web Server   |
      |   192.168.0.x   |      |  eth0 : 169.254.71.x  |------| 169.254.71.x  |
      \-----------------/      |                       |      \---------------/
                               \-----------------------/

我在从本地机器访问 Web 服务器时遇到了一些问题。

通过 virtualbox 配置 ubuntu 有 2 个网络适配器,第一个设置为内部网络,第二个设置为桥接连接。这样,在虚拟机内部就有了两个有线连接,我将第一个(对应于内部网络)设置为“仅本地链接”,将第二个设置为自动 DHCP。

该网络服务器运行的是交钥匙 Linux LAMP 操作系统,网络适配器配置为内部网络,网络名称与 ubuntu 内部网络相同。

我已经关注教程(在适当的情况下切换 eth0 和 eth1)使我能够从 Web 服务器 ping 到外部世界。我可以从 Web 服务器 ping 到本地计算机和互联网上的任何网站。

现在我的问题来自于尝试做上述相反的事情。我已经尝试了很长时间,但毫无效果,使用了以下资源:还有一些其他的,使我能够从本地计算机连接到 Web 服务器。当我尝试 ping Web 服务器的 169.254.71.x 地址时,它无法连接。

我意识到我的问题可能出在我的 ubuntu 机器上的 NAT 配置中,或者我的 ubuntu 机器上的端口转发配置中,但我不知道如何解决这些问题。

答案1

所以我最终解决了我的问题,只是为其他可能遇到此问题的人发布了一个答案。

命令:

iptables -t nat -A PREROUTING -d outerip -p tcp --dport 80 -j DNAT --to webip

最终让它得以运作。此规则附加了预路由表,以允许来自防火墙外部 IP 的连接(只要它们是发往端口 80 的 TCP 数据包)直接通过防火墙进行 NAT 到 Web 服务器 IP。

还应该注意的是,我将防火墙的内部适配器从“仅链接本地”更改为“与其他计算机共享”,这为该 eth 适配器分配了一个地址 10.42.0.x,而不是 169.254.xx 我不确定这是否修复了任何功能,另一个用户建议我删除 169.254.xx 地址字段。

相关内容