建议依据
目前最头疼的就是没有IPv4公网IP的用户,使用FN Coonect限速,使用转发、组网,要么流量限制,要么带宽限制,要么不稳定且相对麻烦,实际使用体验上,上述方式都不尽人意,IPv6方式也不是最完美的,一个是配置有门槛,另一个是用户网络不一定有IPv6。除此之外,貌似就没有其它通用的方法了。但是通过Lucky的STUN穿透获取临时公网IP和端口,然后利用Lucky内置Webhook自动汇报变更的IP和端口,来实现类似DDNS的功能,从而实现直连。这个方法完美解决了没有公网IP的宽带公网直连访问的问题
实现原理和思路
Lucky的STUN穿透其实就是STUN客户端第一次发起UDP包的时候,由STUN服务器解析UDP包内的公网IP+端口,然后将此信息封装后返回STUN客户端中。最后,STUN客户端将此信息发送给外部调用的终端,从而实现数据链接。
目前通过Lucky已经能实现域名跳转到IP+端口的访问,具体实现方法有两种,可以参考下面的文章:
内链通”STUN内网穿透使用教程
https://lanjmp.com/tutorial.html
无公网部署https和反向代理 (基于Lucky的STUN穿透)
https://www.bilibili.com/opus/867168542923948067
上述两种方式就是利用Lucky的STUN穿透实现获取到公网IP+端口,提交给域名服务器,然后实现域名即时解析和跳转,解决了无IPv4公网IP的用户实现类似DDNS的功能
目前局限
但是这个方法仅限于Web端,在Web端访问时,域名会跳转到IP+端口进行访问,但是APP端就不行,因为不支持跳转。按照上述方法实现后,每次访问APP都要先访问下网址,然后复制跳转的IP,再到APP端进行登录,很麻烦
建议增加
建议在APP登录地址栏的实现上增加域名的解析跳转功能,如果检测到是域名地址,则检测是否是301或者302,如果是,则访问跳转后的地址来连接,这样可以省去很多麻烦
如果大佬们觉得使用Lucky不可靠,可以直接在远程访问方式里增加STUN服务、内网转发地址、Webhook的实现,直接实现STUN穿透,这个实现估计能解决很多人问题,当然这样工作量也会大很多,但是技术难度并不大。