Lucky STUN穿透进阶教程01:手把手教你远程访问Lucky Web服务

很多朋友都用过 Lucky 的 STUN 穿透功能,可以把你家里的内网服务,对外暴露在公网,这样人在外面也能访问家里的服务。但如何安全、方便、灵活地通过 STUN 来访问多个 Web 页面、后台等,其实还是有技巧的。很多人还钻了些误区,今天给大家简单说一说。

开始前准备

  • 已经会用 Lucky 的DDNS 功能(动态域名解析)
  • 已经会用 Lucky 的Web服务(反向代理),比如让一个内网网站在公网能通过域名访问
  • 已经会用 Lucky 的STUN穿透 功能

如果还不会,可以先按 Lucky 的帮助文档或者别的教程学一下。

常见误区

很多朋友在通过 STUN 穿透时,直接给每一个内网Web服务建一条 STUN 穿透规则,让每个服务都有一个公网端口,然后分别用这些端口和公网IP访问。 这样做有什么问题呢?

  • 端口越来越多,安全性差
  • 后期维护管理麻烦
  • 经常搞不清哪个端口是哪个服务
  • 无法给需要访问的Web服务套上证书

其实完全没必要这么麻烦,Lucky 提供的 Web服务功能可以轻松搞定!

 

正确的做法

其实只需要对外暴露一个端口,比如 16666,然后在内网用 Lucky 的 Web服务反代,把所有内网Web应用聚合到这一个端口上(就像80端口上可以各种域名分很多站点一样)。

总体思路:

  • Lucky DDNS 申请好两个域名:一个 IPv6 的、一个 IPv4 的
  • 所有域名对应都走 Lucky Web服务,监听本地端口16666
  • 只需要建一条 STUN 穿透,把公网的动态端口指向 16666
  • 各个 Web 服务通过不同的二级域名区分,反向代理到内网对应服务
  • STUN外网访问时,用“域名+动态端口”访问

 

步骤详解

1. 配置域名

  • 已经有一个 IPv6 域名,比如 *.ipv6.ilucky.net
  • 新建一个 DDNS IPv4 域名,比如 *.ipv4.ilucky.net (建议优先使用 STUN 协议获取的公网 IP({STUN_规则名_IP}),而不是直接通过接口或网卡获取 IP 地址。这样可以避免个别情况下接口获取的 IP 与实际 STUN 获取的公网 IP 不一致的问题)

2. 配置 Lucky Web服务(反向代理)

比如现有Web服务规则设置如下,
监听端口16666
启用TLS
监听类型IPv4&IPv6(为了STUN能够访问,务必勾上IPv4

服务名访问内网地址二级域名
Lucky192.168.1.1:16601lucky.ipv6.ilucky.net
飞牛192.168.1.20:5666fn.ipv6.ilucky.net
OpenWRT192.168.1.1:80openwrt.ipv6.ilucky.net

 

  • 在上面每条服务子规则增加多一条前端地址(子规则支持多前端地址,一行一条) ,比如 lucky.ipv4.ilucky.net 

3. 配置 STUN 穿透

  • 只需要建一条 STUN 穿透规则
  • 指向 Lucky Web服务的 16666 端口

注意:不用为每个 Web 服务单独穿透端口,不用动态修改 Web服务监听端口,只要 STUN 指定到 16666 即可

4. 外网访问方式

方式访问地址示例
IPv6lucky.ipv6.ilucky.net:16666
IPv4lucky.ipv4.ilucky.net:(STUN动态端口)
...可根据服务不同更换前面的 lucky/飞牛/openwrt 等 

注意事项

  • 在使用 STUN 时,强烈建议新手不要将 IPv4 和 IPv6 记录设置在同一个域名(即不要将域名配置为“双栈”)。这种配置可能会导致一些意想不到的问题。对于有经验的用户,可以根据实际需求决定是否采用双栈配置。
  • 不要使用 Lucky 的内置端口转发功能来实现反代,会导致性能和真实客户端 IP 丢失。
  • 动态端口每次穿透可能会变,只要配合 DDNS 域名+动态端口访问就行了
  • 别忘了给v4那一组的泛域名也申请证书
  • Web服务规则别忘了勾上监听IPv4类型
  • 我说的并不一定都是对的

 

本文为 Lucky  官方文档/教程,转载请注明出处。