我意识到这可能更适合 ServerFault,但这是我在非专业环境中运行的家庭网络。
在家里,我将主路由器连接到互联网,家庭主计算机和笔记本电脑都通过该路由器运行。我还有一个“开发”网络,其中虚拟机中有一个 m0n0wall 防火墙,用于提供互联网服务。我想在开发网络上的其中一台机器上托管一个网站(最终托管其他服务),但无法弄清楚如何通过主(belkin)路由器“端口转发”,通过 m0n0wall 防火墙,然后通过网络服务器。
流量必须通过公共 IP,通过主路由器 (192.168.2.1) 的端口 80,然后通过 m0n0wall 盒 (192.168.2.2) 的 WAN 连接转发,通过 LAN 连接 (192.168.10.2),最后进入服务器。保存配置后,我无法在它不工作时工作。我可以在主路由器后面很好地托管网站。m0n0wall 上有一条防火墙规则,用于传递来自 192.168.2.1 的端口 80 流量,但它就是不起作用。
我在下面绘制了一个非常基本的图表(不幸的是,任何高级的 Visio 东西对我来说都是黑魔法)。
答案1
答案2
好的,我终于解决了这个问题,并得到了我想要的结果。我不再使用 m0n0wall 盒子转发两次数据包,而是移动到了更改后的子网。我现在有一个基于 DD-WRT 的 Linksys E1000,处于“客户端模式”,因此它充当家庭无线网络的“客户端”,并有一个 DHCP/DNS 服务器为开发网络上的有线连接提供服务。我已将 Belkin 路由器和 DD-WRT 上的子网掩码从 255.255.255.0 更改为 255.255.252.0。Belkin 位于 192.168.2.1,DD-WRT 位于 192.168.1.1。每个网络上的机器都可以互相看到,因此,如果我将开发网络上的机器设置为静态 192.168.2.x,Belkin 将能够将端口转发到它。
图表时间:
我不知道 m0n0wall 是否能够转发数据包,但子网划分似乎是实现此目的的最简单的方法。
我可以推荐Wolfram Alpha获得易于使用的子网划分信息。