如何实现子网下的服务器对外网访问

另外你用的交换机是哪个牌子的?如果是华为或者H3C的设备,你可以进到交换机里面,输入 dis cu 这个命令查看一下当前配置,看看是不是每个端口里都带了类似 #gvrp 或者 #group 这种配置项,如果有的话,把这些东西删掉一般就正常了。这个坑挺常见的,很多人卡在这里。

其实这事得看你用的AC是什么版本的。如果是比较新的版本(基本上近两年买的设备应该都支持),那你在配置DNAT规则的时候,规则下面会多出来一条“发布服务器”的选项,你只要直接把它勾选上就可以了,不用自己手动折腾那么复杂。老设备可能就没这个便利选项了。

想要让子网里的服务器能被外网访问,核心思路就是做两次端口映射。具体怎么操作呢?先在你的第一台路由器上,把外网请求映射到第二台路由器的WAN口地址;然后再在第二台路由器上,把请求继续映射到最终那台服务器上。这样一层一层转发过去,外网才能顺着这个链路找到内网里的服务器。

有时候这条路走不通。外网IP往往只有一个,而这个IP上的80端口也就只有一个,资源是唯一的。除非你在服务器本身上面再做一个端口映射,把80端口转换成别的端口来用,理论上这样确实可行,不过我没实际测试过,所以具体能不能跑通还真不好说,得你自己去验证一下。

提醒一句,你光设置端口映射还不够,还得把目的地址转换(也就是DNAT)一起配好。很多人只做了端口映射却忘了目的地址转换这一环,结果外网怎么都访问不到,其实两样东西是要配套设置的,缺一不可。