Unifi Security Gateway下配置IPv6防火墙规则实现两台Web服务器80/443端口公网访问的问询
Unifi Security Gateway下配置IPv6防火墙规则实现两台Web服务器80/443端口公网访问的问询
我的现状与需求
我搭建了两台独立运行的Web服务器(分属不同电脑),希望通过IPv6协议让它们的80和443端口都能被公网访问——因为IPv4下受限于NAT,同端口没法转发到不同IP,所以IPv6是我选定的解决方案。我用的设备是Unifi Security Gateway。
IPv4的困境(已排除的方案)
- 80和443端口目前只能转发到server1的IP地址
- 没法把相同端口转发到server2的IP,这解决不了两台服务器同时对外提供服务的需求
已完成的IPv6配置步骤
- 给两台服务器分别创建了对应子域名的AAAA记录,直接指向它们的全局IPv6地址
- 在USG里创建了包含两台服务器全局IPv6地址的地址组
- 还创建了包含HTTP(80)和HTTPS(443)端口的端口组
现在我卡在了后续的防火墙规则配置环节,想知道接下来该怎么设置才能让公网通过对应的子域名正常访问两台服务器的Web服务?
给你的具体配置方案
别发愁,IPv6下没有NAT的限制,配置起来反而比IPv4顺畅,跟着我一步步来:
进入USG的IPv6防火墙规则界面
登录你的Unifi控制器,找到USG对应的设备管理面板,点进「防火墙」-「IPv6规则」,重点是要选「WAN_IN」方向的规则——这管的就是公网到你服务器的入站流量。新建允许访问的IPv6防火墙规则
- 规则类型选「允许」
- 源地址设为「任何」(要让公网所有IPv6用户都能访问)
- 目的地址直接选你之前建好的那个包含两台服务器IPv6的地址组
- 目的端口选你创建的包含80、443的端口组
- 协议指定为「TCP」(毕竟HTTP/HTTPS都是走TCP的)
- 给规则起个好记的名字,比如「允许公网IPv6访问Web服务器80/443」
- 把这条规则的优先级调得高一些,确保它在那些拒绝流量的规则之前被执行
检查服务器本地的IPv6防火墙
这点很容易忘!USG放行了流量,但服务器自己的IPv6防火墙要是把80、443端口给拦了也白搭,记得在两台服务器上都配置允许公网IPv6地址访问TCP 80、443端口的规则。验证配置效果
保存规则并应用到USG后,别在局域网内测试(容易有缓存或者内网规则干扰),换用手机流量这类公网环境访问两个子域名,看看能不能正常打开对应的Web服务。要是不行,先检查USG的规则有没有生效,再确认服务器的全局IPv6地址是不是能正常连通。
额外小提醒
- 之后要是再加新的Web服务器,直接把它的全局IPv6地址加到之前的地址组里就行,不用再改防火墙规则,超省心
- 如果你的服务器全局IPv6是动态分配的,记得配个IPv6的DDNS服务,自动更新AAAA记录,不然地址一变用户就访问不了了
备注:内容来源于stack exchange,提问作者Kleajmp




