基于 SSTP 隧道的远程端口映射
来自深圳捷联讯通科技有限公司
- 当一个网络节点是动态公网 IP,不考虑使用 ddns 的方式,或者获取 IP 是私网地址,可以通过一个固定 IP 节点使用隧道协议中转访问。也可作为
- 隐藏该网络节点 IP 时,通过虚拟隧道作为跳板,访问另一个端节点的内网应用,建立备份通道。
- 如下:
- 这里选择 SSTP 隧道协议,因为支持 SSTP 协议,端口可以自定义,连接较为灵活
- Office A 路由器配置
- 首先为 Office A 路由器配置 IP 地址
/ip address add address=192.168.99.1/24 interface=lan disabled=no add address=111.2.3.2/27 interface=wan disabled=no
- 为 Office A 路由器配置默认网关
/ip route add gateway=111.2.3.1 disabled=no
- 在创建 nat 规则前,在地址列表里面创建 nat 地址列表,用于上网用户的 nat 转换规则使用
/ip firewall address-list add address=192.168.99.0/24 list=nat disabled=no
- 添加 nat 的伪装规则
/ip firewall nat add action=masquerade chain=srcnat out-interface=wan src-address-list=nat disabled=no
- 创建 SSTP 隧道服务,启用 sstp 服务,设置端口为 8433
/interface sstp-server server set enabled=yes port=8433
- 为 Office B 路由器创建账号密码,并分配本地和远端 IP 地址
/ppp secret add name=yus password=123 profile=default-encryption local-address=10.1.1.1 remote-address=10.1.1.2 service=sstp disabled=no
- Office B 路由器配置
- 添加内网 ip 地址
/ip address add address=192.168.66.1/24 interface=lan disabled=no
- 创建 PPPoE 拨号
/interface pppoe-client add add-default-route=yes disabled=no interface=wan name=pppoe-out1 password=123 user=pppoe
- 添加 SSTP 隧道客户端规则,连接服务器
/interface sstp-client add connect-to=111.2.3.2:8433 disabled=no name=sstp-office password=123 user=yus
- 此时 SSTP 隧道连接建立完成,进入 sstp-client,使用 monitor 0 查看连接状态
[admin@MikroTik] /interface sstp-client> monitor 0 status: connected uptime: 3w6d5m24s encoding: AES256-CBC mtu: 1500 local-address: 10.1.1.2 remote-address: 10.1.1.1 -- [Q quit|D dump|C-z pause]
- Office A 路由器
- 添加静态路由,从服务端能访问到客户端内网 ip 段
/ip route add dst-address=192.168.66.0/24 gateway=10.1.1.2 disabled=no
- 在地址列表中添加 10.1.1.2 的客户端地址,做 nat 转换
/ip firewall address-list add address=10.1.1.1 list=nat
- Office A 路由器做上 sstp-office 接口的伪装,在访问内部应用时伪装为 sstp-office 的接口 IP 地址
/ip firewall nat add action=masquerade chain=srcnat out-interface=sstp-office
- 创建端口映射规则,可以使用不对称端口做映射,访问从 Office A 路由的 9900 端口访问 Office B 内部应用服务器 192.168.66.6 的 80 端口
/ip firewall nat add action=dst-nat chain=dstnat dst-address=111.2.3.2 dst-port=9900 protocol=tcp to-addresses=192.168.66.6 to-ports=80
- 在这个案例中,如果 Office B 路由器有公网 IP 情况下,本地也可以开启端口映射,这样作为备份端口使用,Office A 路由器通过隧道作为跳板
- 机为主访问节点,实现线路冗余。