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)
服务名 | 访问内网地址 | 二级域名 |
---|---|---|
Lucky | 192.168.1.1:16601 | lucky.ipv6.ilucky.net |
飞牛 | 192.168.1.20:5666 | fn.ipv6.ilucky.net |
OpenWRT | 192.168.1.1:80 | openwrt.ipv6.ilucky.net |
- 在上面每条服务子规则增加多一条前端地址(子规则支持多前端地址,一行一条) ,比如 lucky.ipv4.ilucky.net
3. 配置 STUN 穿透
- 只需要建一条 STUN 穿透规则
- 指向 Lucky Web服务的 16666 端口
注意:不用为每个 Web 服务单独穿透端口,不用动态修改 Web服务监听端口,只要 STUN 指定到 16666 即可
4. 外网访问方式
方式 | 访问地址示例 |
---|---|
IPv6 | lucky.ipv6.ilucky.net:16666 |
IPv4 | lucky.ipv4.ilucky.net:(STUN动态端口) |
...可根据服务不同更换前面的 lucky/飞牛/openwrt 等 |
注意事项
- 在使用 STUN 时,强烈建议新手不要将 IPv4 和 IPv6 记录设置在同一个域名(即不要将域名配置为“双栈”)。这种配置可能会导致一些意想不到的问题。对于有经验的用户,可以根据实际需求决定是否采用双栈配置。
- 不要使用 Lucky 的内置端口转发功能来实现反代,会导致性能和真实客户端 IP 丢失。
- 动态端口每次穿透可能会变,只要配合 DDNS 域名+动态端口访问就行了
- 别忘了给v4那一组的泛域名也申请证书
- Web服务规则别忘了勾上监听IPv4类型
- 我说的并不一定都是对的
本文为 Lucky 官方文档/教程,转载请注明出处。