You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

MikroTik路由器基于特定域名的端口转发配置方法咨询

MikroTik路由器基于特定域名的端口转发配置方法咨询

嗨,我来帮你搞定这个基于域名的HTTPS端口转发需求!普通的端口转发只看IP和端口,没法区分不同域名的请求,而咱们要转发的是443端口的HTTPS流量,得靠**SNI(Server Name Indication)**来识别请求里的域名——这是TLS握手阶段明文传输的字段,MikroTik可以精准抓取这个信息来做规则匹配。

下面是具体的配置步骤,不管你用Winbox图形界面还是CLI命令行都能操作:

一、准备工作

首先确保两件事:

  • 你的MikroTik路由器已经拿到公网IP,且office1.example.comoffice2.example.com这两个域名已经正确解析到这个公网IP上
  • 内网的Server1和Server2都能正常访问,且它们的防火墙允许443端口的入站流量

二、创建SNI匹配规则(Layer7协议)

我们需要先定义两个规则,用来识别对应域名的HTTPS请求:

用Winbox操作:

  1. 打开Winbox登录路由器,进入IP > Firewall > Layer7 Protocols菜单
  2. 点击+添加第一条规则:
    • 命名为SNI-office1
    • 正则表达式填:^\\x16\\x03\\x01.*\\x00\\x00.*office1\\.example\\.com
      (这个正则专门匹配TLS握手包中的SNI字段,精准度比模糊匹配高很多)
  3. 再点击+添加第二条规则:
    • 命名为SNI-office2
    • 正则表达式填:^\\x16\\x03\\x01.*\\x00\\x00.*office2\\.example\\.com

用CLI命令操作:

直接在终端输入以下命令:

/ip firewall layer7-protocol
add name=SNI-office1 regexp="^\\x16\\x03\\x01.*\\x00\\x00.*office1\\.example\\.com"
add name=SNI-office2 regexp="^\\x16\\x03\\x01.*\\x00\\x00.*office2\\.example\\.com"

三、配置NAT转发规则

接下来把匹配到的流量转发到对应服务器:

用Winbox操作:

  1. 进入IP > Firewall > NAT菜单
  2. 添加第一条转发规则(对应office1):
    • Chain选择dstnat
    • Protocol选择tcp
    • Dst. Port填443
    • Layer7 Protocol选择刚才创建的SNI-office1
    • Action选择dst-nat
    • To Addresses填写Server1的内网IP(比如192.168.1.10
    • To Ports填443
  3. 添加第二条转发规则(对应office2):
    • Chain选择dstnat
    • Protocol选择tcp
    • Dst. Port填443
    • Layer7 Protocol选择刚才创建的SNI-office2
    • Action选择dst-nat
    • To Addresses填写Server2的内网IP(比如192.168.1.20
    • To Ports填443

用CLI命令操作:

输入以下命令:

/ip firewall nat
add chain=dstnat protocol=tcp dst-port=443 layer7-protocol=SNI-office1 action=dst-nat to-addresses=192.168.1.10 to-ports=443
add chain=dstnat protocol=tcp dst-port=443 layer7-protocol=SNI-office2 action=dst-nat to-addresses=192.168.1.20 to-ports=443

四、验证配置

配置完成后,你可以从外网访问office1.example.com:443office2.example.com:443,测试是否能正常跳转到对应的内网服务器。如果有问题,可以检查:

  • 域名解析是否正确
  • 内网服务器的防火墙是否放行443端口
  • MikroTik的IP > Firewall > Filter里是否有允许established,related流量的规则(默认一般都有)

备注:内容来源于stack exchange,提问作者Dmitry Nikolaev

火山引擎 最新活动