Lucky STUN穿透进阶教程02:用公网服务器轻松实现无端口访问Web服务!
在前一篇教程中,你已经学会了如何用Lucky STUN穿透,让自己在外也能访问家里的Web服务。但是,每次访问都要在地址后面加上一个“动态变化的端口”,还是不够优雅也容易记错。那么,能不能像访问普通网站一样,只输入域名就能直接访问,不用再管端口?当然可以!
如果你有一台公网服务器,那么接下来的方法特别适合你。本教程需要用到Lucky 2.18.1及以上版本。
一、原理简述——让公网服务器帮你中转
我们的目标是:外挂一台公网服务器,把所有“需要加端口”的访问请求都中转回来,然后自动跳转到真实端口,实现真正的“无端口”访问。
二、开始设置
1. 新建泛域名 + SSL证书
新建一个新的泛域名用于公网服务器转发,比如 *.stun.ilucky.net
。
- 去域名服务商把它的A记录指向你公网服务器的IPv4地址
- 给这个域名配置好SSL证书(让你能https安全访问),这个证书不需要在公网服务器端配置,而是在家里的Lucky内配置。
2. 家里Lucky配置重定向
- 在家里的Lucky Web服务(建议还是用16666端口)中,新增一条 “重定向”类型的子规则
- 前端域名:
*.stun.ilucky.net
- 后端地址:
https://{1}.ipv4.ilucky.net:{STUN_443穿透_PORT}{path}{args}
- 这一步会“自动跳转”到你设置的动态端口
- {STUN_443穿透_PORT} 为Lucky全局变量,根据你的STUN规则名称取,详见Lucky官网文档
- 前端域名:
这里很多人可能疑惑:为啥
*.stun.ilucky.net
的解析指向公网服务器,却要在家里Lucky先建规则?其实不用纠结,后续会由公网Lucky来请求家里的Lucky实现跳转。跟着做即可!
3. 公网服务器上的Lucky配置
- 公网服务器装好Lucky,Web服务规则(启用TLS)监听443端口(用于https访问)。不需要上传
.stun.ilucky.net
的SSL证书到公网服务器。 - 在Web服务中加一条“类型为SNI分流”的子规则。
SNI分流就是根据访问时使用的域名(sni)来“智能分流”到不同的后端地址,实现灵活跳转。
SNI分流填写主要分两种情况:
A. 能用IPv6(推荐方式)
- 直接设置SNI分流目标地址为你家里Lucky的IPv6域名,任意一条匹配ddns泛域名的即可如:
lucky.ipv6.ilucky.net:16666
B. 只能用IPv4(给家里和公网服务器任意一边没有IPv6环境)
家里Lucky的DDNS功能创建一个新的TXT类型域名记录,比如:
- 记录名:
*.stunaddr001.ilucky.net
- 记录值填写:
{STUN_443穿透_ADDR}
(变量会自动带入STUN实际 IPv4+端口信息)
- 记录名:
公网Lucky SNI分流目标地址填写:
{DNS_TXT_*.stunaddr001.ilucky.net_ADDR}
这样就能动态地让公网Lucky知道家里Lucky的真实出口端口。
三、测试&效果
- 好了,一切设置完毕!
- 以后你在外面只要输入
lucky.stun.ilucky.net
,就能自动跳转到lucky.ipv4.ilucky.net:stun动态端口
,直接访问家里Web服务,访问体验和网上网站一样——无需再加端口号!
这种方案特别适合浏览器访问家里的各种Web应用,也适用于部分支持跳转的网址的APP(如猫头鹰文件、飞牛播放器等)。有些APP(比如飞牛APP的影视模块)可能还有兼容性问题,这部分建议找相关APP开发者反馈。
四、小结&注意事项
- 新建一个三组泛域名:
*.stun.ilucky.net
(A记录指公网服务器IP) - 公网服务器端SNI分流子规则和家里lucky重定向子规则设置的前端域名要一致(
*.stun.ilucky.net
) - 家里Lucky设置好“重定向”规则,公网Lucky做“分流”规则
- 只需记域名,无需再背端口,体验如同“正经网站”访问
- 需要Lucky版本2.18.1以上,有公网服务器且能用443端口更佳
- SNI分流目标建议优先用IPv6;没法用IPv6时,用DDNS+TXT记录辅助
- SNI分流规则中启用ProxyProtocolV2,并且家里的lucky设置页面全局代理协议 信任的CIDR列表 添加公网服务器IP可传递访问者真实IP。
- SNI分流只使用于HTTPS类型服务规则,别忘了在主规则中启用TLS
本文为 Lucky 官方文档/教程,转载请注明出处。