卡卷网
当前位置:卡卷网 / 每日看点 / 正文

内网穿透工具花生壳、神卓互联、FRP、Zerotier哪个访问速度快?

作者:卡卷网发布时间:2025-01-06 21:17浏览数量:268次评论数量:0次

花生壳和神卓互联是收费内网穿透,FRP是免费内网穿透,但是需要你有公网IP做中继,一般情况下是购轻量应用来实现,看带宽和流量有所区别,Zerotier严格意义上是虚拟组网,不是内网穿透,访问端和服务端都需要在Zerotier环境下才可以。

目前国内的内网穿透现状就是这样,免费的要么限流要么限速,收费的普遍性价不高,想要理想的速度和流量又太贵。我最近发现了一款完全免费不限流的内网穿透工具,但是有前置条件,就是必须路由器上开启NAT1和upnp,否则很大几率失败,有条件的可以试试。

前言:

大家好,我在泛计算机行业工作了20年,刚来知乎,很喜欢这里的氛围,也希望能和大家多交流。我钻研的领域主要有计算机、NAS、家庭网络和通过公网访问内网资源这几个,希望能够帮到特定的朋友,尤其是小白朋友。

我自己已经成功并且稳定运行的主要有,家庭宽带通过IPV6+DDNS的外网访问,具有固定IPV4公网的轻量应用做内网穿透和虚拟组网中继,电信IPV4可变公网宽带的外网访问,以及在上述3个具体网络环境之间用蒲公英、Wireguard和Tailscale组建虚拟网络,WireguardMesh组网,自建Derp等玩法,具体的应用有NAS的远程访问、Jellyfin影音库的搭建和使用,NAS/Linux下的虚拟机,Docker,Windows远程桌面和远程串流等。外出工作也用平板电脑代替笔记本电脑快一年了,这些玩法我会逐渐写出来分享给大家,有兴趣的同学可以关注防止走丢。

言归正传,国内的家庭宽带基本已经全面普及IPV6了,因为IPV6都不会固定,只需要使用DDNS把变化的IPV6同步到域名,就可以在外网使用域名加端口来访问家庭内设备和服务了,NAS、影音、远程桌面和串流都可以玩儿。但是很多人的工作环境是没有IPV6的(我们公司就没有),并且短期内也看不到升级成IPV6的可能性,除了做直播、和IOS开发,我想不到还有什么业务一定需要IPV6。IPV4和V6正常情况下也不能互通,很多朋友都很想知道如何在V4环境下访问家庭内网资源,方法其实是很多的,只是要不然麻烦,要不然慢,要不然收费,不收费又方便的带宽又很低或者流量,总之不能让你把好处都白嫖了!今天介绍一个免费且不的方法,当然也是有条件的,不是所有的环境都能用。

有两个前置条件,第一个条件是你家里宽带的NAT类型,不能是NAT4,也就是不能是无线宽带(通过4G/5G流量实现上网),因为蜂窝网络绝大部分都是NAT4,普通家用宽带有可能是NAT1-3这三种类型其中之一,都是有几率可以成功的,但不能保证100%;第二个条件是你的主路由器(拨号的设备),要么是软路由,要么是一台电脑主机,要么是硬路由可以刷机,或者硬路由可以开启SSH权限(如小米路由器全系可刷机或者开启SSH),我们要装一个软件来实现一系列功能。

内网穿透具体作:

第一步:更改NAT类型

恩山论坛有个帖子,在这里s://right/forum/thread-8300256-1-1.html。里面有NAT类型的软件,下载下来,填上贴子里的和端口,就可以进行,。我家联通宽带,结果是NAT3,我就给路由器换了支持NAT1的固件,如下图所示,可以更改为全锥形NAT,也就是NAT1。

换了固件,执行了更改NAT作后,顺利更改为NAT1(右边蓝线上的框是我的结果)。当然这个都是有几率的,无法保证100%能够更改成功。还有就是光猫一定要改桥接,使用路由器拨号,除非你可以在光猫上装软件!

第二步:安装大吉(Lucky)

这是一个整合包,内含DDNS、反向、端口转发和STUN内网穿透,这四个功能的是一个都不能少全部都能用的上。官网如下:s://lucky666/。安装方式也不复杂,支持openWRT、Docker镜像、Windows和Linux环境,有IPK插件、Docker镜像、二进制文件,可以手动、半自动和自动使用。现在市面上有一些硬路由是支持Docker的,假如你是这种路由器,也不用刷机或者SSH了,直接用Docker安装就行,我印象中小米6500以上,普联6086/6088都是支持Docker的。像100多的小米AX3000T和H3CN30Pro都支持刷机或者SSH,华硕更是全系都能装插件。

假如你已经有openRT或者刷了openWRT,那么我建议安装istore软件中心,里面内置了Lucky,安装最简单。安装istore请参照s://githu/linkease/istore。然后在istore里面找到Lucky安装即可。安装完成后去服务里面找到Lucky启用服务,输入://ip:16601,默认用户名和密码都是666,即可进入配置页面。

第三步:使用STUN内网穿透

前面说过Lucky是个整合插件包,内含四大功能,都是特别适合玩家庭网络的,这篇文章的主题是免费内网穿透,所以只讲STUN穿透,的改天有时间另出一篇文章。在玩STUN之前,你最好已经配置好了IPV6的DDNS,不然穿透变了,你在外网的时候又看不到,就没法玩了。打开你路由器的16601端口,进入Lucky配置页面,点左边菜单的STUN内网穿透,然后添加穿透规则。

名称你随意写,作模式就是简易模式,穿透类型这里,你要映射的协议是哪个就选哪个,如我想在外网访问我的openWRT,那就要建立一个到路由器本地80端口的映射,所以选择TCP,目标之上,假如你有upnp的话,都不用填,然后目标就填你需要映射服务的设备的内网,如我的路由器就是192.168.10.1,目标端口就是80,然后确认。穿透成功的话,你就能看到映射的外网了。

如上图,这时在我在上,关掉Wi-Fi使用蜂窝网络,在浏览器上输入蓝框内的和端口,就能映射到路由器的80端口上了。以此类推,你需要映射内网什么端口到外网,就添加一条STUN内网穿透规则即可。

别急,还有个小小的问题,STUN的内网穿透,映射的那个外网也不是一成不变的,你在外网的时候,怎么能知道该访问哪个呢?你得先在外网访问到Lucky的页面才能知道对吧,并且你还不能以STUN的方式去访问Lucky页面,所以还得先配置一下Lucky的外网访问页面。到Lucky页面里面,左侧找到We服务,添加we服务规则,按下图所示,我们把16666端口定义为外网访问Lucky配置页面的端口,再点击下面的添加we服务子规则。

按我这样填写就可以了,我涂写的地方,你需要填写你自己的域名。这个规则的作用,是接收到外网访问的时候,目标为<你的域名>:16666的访问请求,就反向到你的路由器内网的16601端口,也就是你的Lucky内网,这时候你就可以在外网使用IPV6(如)来访问Lucky,在Lucky里面就能查看到STUN穿透到的外网和端口号了。这一步是必须要做的,不然你无法访问到STUN页面,也就无法获知映射的外网和端口。

那么到这里,使用Lucky内置的STUN内网穿透玩法就结束了。为了帮助有些需求还没有特别匹配的同学理解,我们再来捋一下。你的家庭宽带有了IPV6公网,你也把可变IPV6使用DDNS映射到了你的域名,从此你在外使用平板等设备就能使用域名加端口的方式访问内网的设备和服务了,但是你的宽带没有IPV4公网,于是你在没有IPV6环境的时候,如绝大部分的公司和单位,也想访问内网设备,那就需要做IPV4的内网穿透。于是我找到一个不花钱,不限流量,不限带宽的IPV4内网穿透,我们使用Lucky插件内置的STUN内网穿透来实现。设置好Lucky之后,通过V4访问之前,你需要先用的IPV6网络登录到内网路由器的Lucky页面(16601端口)来查看STUN映射,查看之后,你就可以愉快的使用单位/公司的网络访问内网设备和服务了。这就是整个的逻辑。

你可以使用上面的步骤,把你的NAS文件共享、NAS页面、Jellyfin影视库、远程桌面等逐一建立外网映射,一个端口号一条穿透规则。串流我觉得不好做,因为Moonlight串流需要6个端口号,这6个端口号映射之后,也不一定相连,你还得逐一去看和端口号,再改远程设备的端口号,太麻烦了,串流还是IPV6,或者使用虚拟组网方式来实现(蒲公英、Wireguard、Tailscale),有时间的话我都写一下相关教程,不过不会很快。

STUN穿透的扩展玩法

现在已知我们可以通过STUN把内网资源映射到公网IPV4,那么想象一下,还能怎么扩展,我能想到的暂时就是DDNS和虚拟组网。但目前只能是个计划,因为需要时间去实践,这里先讲出思路,有时间的同学可以自行先研究一下,有结果了希望在评论区告知一下,谢谢!

DDNS

这个是反映在Lucky的WE页面中,而Lucky也提供了Wehook,那么能不能用Wehook来获取得到的外网映射,然后再通知DDNS呢,理论上是可行的,这样的话,就可以把V4映射到A记录,V6映射到AAAA记录,通过不同的域名来访问不同的和协议,还需要解决端口号的问题。

Wireguard

对于虚拟组网来说,我常用的是蒲公英、Wireguard和Tailscale,Zerotier因为不支持IOS客户端我一直没研究。蒲公英组网是全自动的,不需要你自己去获取Endpoint,假如你的网络已经是NAT1了,那么蒲公英P2P的成功率会非常高的,因此蒲公英就不用讨论了。

Wireguard这边讲一下理论就应该可以了,你的V6还是V4,对Wireguard来说,只影响一个东西,就是作为服务端的Endpoint寻址,寻址成功,使用密钥对就可以建立连接,这时候你不需要去关心外网和内网走的是V4还是V6。

涂掉的地方填写STUN穿透后得到的和端口

所以你需要先在V6环境下把你的Wireguard调通,如你用发起连接,在IPV6环境下,可以解析到内网Wireguard的Endpoint,密钥对正确,就应该可以通了。然后你再把服务端端口通过STUN映射到V4公网,如定义你内网Wireguard的端口为51820,到Lucky里面建立一个STUN穿透规则,使用UDP4,映射到内网Wireguard的内网和51820端口,成功之后,需要使用V4建立Wireguard连接的时候,先用查看51820映射到的外网和端口,在客户端Wireguard里面手工更改Endpoint和端口,就可以了。

对于已经实现V6环境下Wireguard的同学来说,现在就应该能理解我的意思了,所以我觉得是没有问题的。假如V6环境下你的Wireguard都调不通,那么对于你来说,那件事情STUN要更加复杂,有时间的话我再出个教程吧。

Tailscale

Tailscale其实和蒲公英是类似的,假如你家里的Tailscale和外网的Tailscale都是作为peer存在,那么有了NAT1之后,他们之间成功建立P2P连接的可能性也就大大提高了,这种情况下,你不需要再做什么了。

假如你在家庭宽带上自建Derp,V6那部分是没问题的,你需要使用DDNS把你的可变V6固定下来,填到Tailscale的ACL里面去,V6的端口号也没问题。但是V4通过STUN穿透之后,和端口都是可变的,就有点麻烦了,因为你要改ACL里面的端口号,就会把V6的也影响到,不改端口号,就没法用V4做Derp。目前我也想不出有什么好的方法,有想出解决方案的同学,麻烦评论区告知我一声,我也学习学习!

假如这篇文章能够帮到你一点,希望来个免费的三连支持一下,谢谢!

END

免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。

卡卷网

卡卷网 主页 联系他吧

请记住:卡卷网 Www.Kajuan.Net

欢迎 发表评论:

请填写验证码