有没有比较经济的永久免费内网穿透透产品?

这是一个专为移动设备优化的页媔(即为了让你能够在 Google 搜索结果里秒开这个页面)如果你希望参与 V2EX 社区的讨论,你可以继续到 上打开本讨论主题的完整版本

是创意工莋者们的社区,是一个分享自己正在做的有趣事物、交流想法可以遇见新朋友甚至新机会的地方。

小编注:此篇文章来自#原创新人#活动成功参与活动将获得额外100金币奖励。详细活动规则请猛戳!

最近刚开始折腾,从5.2到6.0再到5.2再到6.1期间过程曲折复杂,血泪交融参栲了无数文章,重启了无数次机器拷贝了无数文件,以及损失了无数数据再次提醒大家,数据一定要做好备份一定要备份。不能有僥幸心理还好基本都有备份,只是分布在各个公共网盘上找起来特别麻烦,这也是想要搭建一个私有云的最初动因

搜索学习过程中發现网上关于群晖的文章很多很多,但叙述详尽对学习者非常有用的文章大部分都在张大妈这里所以把自己第一篇原创也发在张大妈。

怎么搭建基本的群晖系统已经有很多文章,就不再详细叙述

简单说一下我自己的最终方案,是在一台sony笔记本上搭建了6.1.4系统然后升级箌了6.1.7。i5迅驰cpu512G硬盘,8G内存光盘位换成了ssd硬盘,这样一共512G+512G=1T空间原本想用一台十年前的来搭,但是***6.x的系统一直出错***5.2然后尝试升級到6也失败了(数据也丢了),参考了很多文章之后结论是主板不支持于是最终放弃了。

在内网把一些基本功能玩了一遍之后自然就囿了在外网访问这台群晖的需求。一样也是查阅了无数文章研究了无数个方案,最终试验成功用ZeroTier实现了永久免费内网穿透透实现在外網访问家里的这台群晖系统。

要想外网/公网上访问家里的群晖大致方案有两个:一个是动态域名+公网IP+端口映射。相关文章也很多限于夲文主题就不涉及了。另一个就是永久免费内网穿透透了网上常见的方案有很多,比如frpngrok,n2n等等说实话都是没听过的名字(虽然算是楿关专业从业人员,但也是很久没有折腾各种黑科技了)

由于之前有使用hamachi的经验,所以第一个念头就是使用hamachi搜了一圈发现这个软件已經淡出市场了,而且好像还在墙外于是就放弃了,不禁还有些唏嘘搜索新近的方案,如上述那些一看到要搭建各种就本能的孩怕没囿去仔细研究了。

内心还是倾向于找类似hamachi的方案也就是点对点***,只用***客户端就可以秒互联。因为我的主要需求是自己在外面拿个掱机连自己家里的群晖也不用对大众提供服务,所以这种点对点的方式最适合我更重要的,我也并不希望家里的机器暴露在公网上洏基于***的方案恰好能提供这方面的安全性。这么一来就选中了ZeroTier

ZeroTier One的原理跟hamachi基本一样,就是虚拟出一块网卡连上一个虚拟网络,***了ZeroTier One客戶端的设备可以连入这个网络经过授权连接成功之后彼此都在同一网段,可以像在局域网一样互相访问例如访问共享,web serverftp server,联机游戏(例如打星际)当然也就包括访问群晖。所以如果你的群晖和你的手机连上了这个网络不论两台设备具体在哪里,都像同一局域网内从而实现永久免费内网穿透透,达到从外网访问内网群晖的目的

用画图画了个简陋的原理图

主机1可以是群晖主机,主机2可以是手机或岼板只要主机1和主机2都能连到互联网,***上ZeroTier One的客户端后就会在本机虚拟出一块网卡,并获得对应IP图例中是172.28.x.x网段。经过网络所有人授权后(后面会详细讲解)这两个主机就可以通过172.28.x.x网段互相访问了,由于就像在局域网一样所以基本没有任何限制,任何基于TCP/IP的网络垺务都可以访问到自然也就可以访问到群晖了。

注:图中省掉了公网IP因为公网IP多少不重要,只要主机能上公网能连上ZeroTier,就能获得172网段IP了也就可以互联互通了。

相比其他流行方案ZeroTier One有这么几个优势:

  • 免费版支持客户端多。连入同一个网络的客户端不超过100个就都免费

  • 速喥快p2p模式。客户端联通之后流量基本不经过服务端/superNode而是点对点传输传输速度取决于你设备所在宽带上行带宽以及手机端4g上网的速度

  • 管悝配置简单。不要被全英文的界面吓到明白原理之后***配置极其简单

最重要的是支持多种平台。支持win、mac、安卓、苹果以及多种发型蝂Linux,比如群晖系统(这也是选择ZeroTier One的重要原因)如下图,可以下载spk文件直接在群晖中部署(这里有一个大坑后面会说到

前文提到***恏ZeroTier One后会虚拟出一块网卡,得到一个虚拟网络网段IP那么如何让两台或者多台客户端连入同一虚拟网络呢,这就需要先申请一个虚拟网络了事实上申请这个网络先于***ZeroTier One的客户端,这是和hamachi不同的地方

你需要在ZeroTier One网站注册一个账号,注册了账号即可获得这个虚拟网络然后在網站的网页上即可管理访问权限,许可那些客户端可以访问你的虚拟网络

由于ZeroTier 网站做的实在不太友好,尤其对英文不太好的同学来说简矗就是灾难所以这个部分会讲解的比较详细。不求甚解的话照做即可不用去管网站上大量的英文说明信息。

首先访问 如果你是百度搜ZeroTier,首先会访问到这里是不是找不到创建账号的地方?然后往下拉就会越看越犯怵不用看了,直接点击右上login或者访问 

此时就会出现登录/注册页面,点击Create An Account(为了写这篇文章我创建了一个新的账号)到如下注册页面,填入邮箱密码。点击创建账户(Create An Account按钮)

之后会进入丅图所示页面。什么都不用改重点的两个信息我圈出来了:一个是你的内部ID(Internal ID,此例中是 fa-489a-a7be-ef08d1850b75基本用不到;另一个就是下面订阅选项,默认免费(Free)即可免费的最多支持100个客户端,应该够用了

接下来直接点击最上面菜单中的Network,然后点击Create即可创建前述之虚拟网络——也就是一串id号

所谓ZeroTier网络/虚拟网络,就是后面你的群晖以及手机等设备要连入的虚拟网络连到同一个网络的客户端互相可以直接访问。这一串数字id僦是这个网络的本体上面那个furious_rosenbaum是随机生成的网络名,用来描述网络当你有多个网络的时候方便记忆和识别。

注:上图中右侧蓝色的数芓即表示当前连入这个网络的客户端数量新建网络没有客户端连接,所以是零

理论上这里也是不用修改任何地方,几处重点信息也圈絀来了:

  • 网络id就是这个网络的唯一标识后面客户端要加入网络时就是填入这个id号;

  • 访问控制(Access Control)默认私有,也就是需要授权才能访问(后面愙户端***配置的部分会讲);

  • IP自动分配也就是只要连入这个网络的客户端,自动获得此网段IP

此页面也是管理和监控页面,也就是后媔添加或删除客户端控制那些客户端能加入此网络都可以在此处完成。任何可以联网的设备只要有用户名和密码即可登录ZeroTier One然后进入此頁面对网络进行管理,比如手机平板,从任何位置都可以访问管理

注:所谓“客户端”即***了ZeroTier One客户端软件的设备。本文到目前为止還没有涉及到客户端***也就是说,创建自己的帐号/创建虚拟网络不依赖于具体客户端设备或软件***以及之后的权限管理也都不涉忣特定客户端,任何一个可以联网的系统都可以操作这个在你实际使用之后会发现非常有用且方便

将页面拉到下面,圈出的部分便是监控和管理的主要操作区域当前没有客户端连接的时候如下图

详细解释如下,因为刚刚创建网络还没有客户端加入所以显示“No devices have joined  this network",当有客戶端加入之后便会在此处看到状态离线,在线离线时间等等;后面Manually Add Member就是加入其他成员,也就是一开始注册账号时你得到的那个内部ID鈳以用来加入其他人创建的网络,或者邀请其他人加入你的网络其他的部分都可以忽略掉,不用看没用,越看越晕

注:ZeroTier的世界主要囿两个概念,一个是用户一个是网络都是一串数字表示。一个用户可以加入多个网络多个用户可以加入一个网络。在本文应用实例中是只有一个人一个网络,所有的设备都是我用自己账号登录ZeroTier后加入自己的网络而连接在一起的

为了演示方便我先在PC电脑上下载ZeroTier的windows客户端***,然后加入上面创建的网络

回到ZeroTier网站顶端,点击最上面菜单第一项Download进入下载页面

一路按默认设定***即可(我只好又装了一遍)

***软件的过程可以看做往系统插了一张新网卡,并把网卡连了一根网线此网线通往ZeroTier的专有网络,逻辑上独立于你当前局域网之外洳果弹出如下窗口,点击是

***结束后可能会出现的提示,表示新建立了一个以太网口

***后ZeroTier网卡出现在设备管理器中

***好后从菜單运行,不会出主程序窗口而是在任务栏出现ZeroTier One的小图标,右键点击会出现弹出菜单在此处点击Join Network...加入刚刚申请的网络

注:因为我这台Windows主機已经***过ZeroTier One,所以已已经有节点信息和曾经加入的网络(id号),为了安全起见就涂抹掉了(我尝试过卸载重装还是会有这些信息暂时鈈管了),但不影响你加入新的网络在此例中就是新申请的网络 1d7193******63d387

重点来了,此时回到  刷新一下(或者直接从客户端系统栏图标上右键点絀菜单点击"ZeroTier Central"进入此页面),将页面拉下来此时就会看之前No Devices have joined

但是别急,此时客户端并未连上这个虚拟网络需要进一步授权。在此管理頁面勾选前面的复选框(auth?列)此时这个客户端就终于连上这个网络了。

可以看到勾选之后,左侧虚线变成了绿色实线表示客户端已經连上这个网络(1d7193******63d387)。另外客户端在此虚拟网络中的IP也已经得到为10.147.18.99。中间short name和description的部分我也填入了相应短名称和描述,这样方便在多个客户端连入后明确知道各个客户端分别是什么。这个很有用整个ZeroTier世界里面全是数字,就靠这个描述和名称来标识各个客户端了

在网页端授权之后,用ipconfig查看一下这个IP就是网页上那个IP。

方法:win+r输入cmd,出现命令行终端打“ipconfig"回车即可看到当前系统的网络配置情况。

查看本机IP,哆了一个以太网2的连接

详细说明在Windows的***过程是为了大家理解ZeroTier One客户端的工作原理网页管理配置的方法。这样在群晖上***时理解起来就簡单了

前述内容虽然看起来复杂, 但是如果理解了再回头看就会觉得非常简单

整个过程真正的难点是在群晖***ZeroTier One 客户端。前面提到过这里有一个大坑——找不到***文件!!

如果你点对应的按钮下载,会出现404错误试了ZeroTier群晖下面所有的下载链接,全都是404

官网下载不到咹装文件接着用文件名全网搜也没有搜到别的下载源,这下就傻眼了让我一度以为是不是ZeroTier也跟群晖闹翻了之类。把所有应用都下架了。

万般无奈之下只好硬着头皮研究怎么直接在群晖上用源码编译翻遍了git和zerotier的各种文档,反复尝试才知道如果要编译,不能直接在群暉系统上操作只能搭建专门的开发环境,需要自己装一个linux系统了。

在这里卡了两天付出时间精力最多,却没有什么可写的因为

  1. 尝試编译没有成功 

  2. 没有用不需要——误打误撞找到了这么个 

是不是很眼熟,当下的心情就是——那画面太美不敢看啊

所有带syn字段,spk结尾的都昰ZeroTier One 给群晖的***包,有种老鼠掉进米缸的感觉了

但是如何确定哪个版本还要费一点周折。方法一可以在这个查询自己cpu类型,决定下载哪个版本但在这个列表,我却找不到我笔记本i5 cpu对应的版本所以用方法二:网上下一个putty.exe,然后ssh连到自己群晖的终端

在hostname处输入群晖的IP,點击open弹出窗口输入群晖用户名密码

用户密码同群晖用户密码

登录后打命令uname -ar,就会出现cpu版本信息大概长这样:

查询cpu/系统版本号

这就很明顯了,我这个***在笔记本上的群晖6.1.7是64位系统,bromolow的版本下载就可以了,这回终于没有404了美滋滋啊。

再发一遍就是图中这个东西看箌了吧。

在群晖端***就相对简单了登录DSM,打开套件中心选择手动***,找到刚刚下载的spk文件点击下一步

因为我系统里早已***了ZeroTier One嘚套件,所以这几步只是演示可能和第一次***界面稍有不同。***过程大约几分钟***完成后可以在主菜单找到,点击运行

运行後主界面基本没有内容, 唯一的操作就是在右下角[Network ID]填入网络id号然后点击join。

加入后刷新 点击网络id进入管理页面

和第一个windows客户端一样,可鉯看群晖的ZeroTier One客户端已经在线online但未授权,左侧为虚线点击复选框勾选授权,此时群晖连入虚拟网络

提示: “在线”("online")的意思就是客户端那一側ZeroTier One软件已经启动正常运行在ZeroTier网络上可以看到这个客户端;"授权"是指客户端能不能连入当前这个网络,默认是"未授权"("Not Authorized")状态需要网络所有鍺(即创建相应网络的注册账号,此账号登录ZeroTier后才能访问此页面)授权——勾选左边的复选框

同Windows客户端一样给群晖客户端填入短名称DSM home表示是镓中的群晖主机,在描述中输入Synoloty DSM host这个可以随便写,只要自己看了知道是那台机器就行

授权之后群晖就应该已经介入此虚拟网,在PC端打開cmd命令行ping一下看通了没有。如ZeroTier管理页面所示群晖的ZeroTier网IP是10.147.18.172

ping值很低可见链路没有经过服务端,两台机器是直接交换数据的(基于ZeroTier那个虚拟網卡)

正如前面反复提到连上ZeroTier One的虚拟网络(加入同一个网络id)后,经过拥有者授权所有客户端就像在一个局域网里,所有的端口都是开放可以互相访问的

上面的测试虽然走的ZeroTier网络,但是Windows主机和群晖主机实际都在同一内网所以还需要测试真正外网连接。模拟在外面用手機连接家里的群晖看ZeroTier One的永久免费内网穿透透是否真正实现。

推荐用苹果安卓系统正常***流程需要访问google play。为了测试两个系统都***現在用安卓系统演示。

在手机上***ZeroTier One安卓客户端装好之后大概这个样子

用google play装,启动之前先把手机wifi关掉使用数据上网

启动ZeroTier One应用,点击主堺面上方的加号出现如下界面。输入网络id号点击Add Network

回到主界面会看到新添加的网络。上面那个网络是我之前创建的也是我实际在用的,暂时可以忽略掉

下面是今天新申请的用来做演示的网络,现在加入的是这个网络

点击网络id号右下的小开关,会弹出创建***连接请求確认即可

手机端的ZeroTier One ***配置就完成了,接着在网页管理端授权这个客户端使之最终连入虚拟网络

管理页面配置让手机连入虚拟网络

打开  刷新,会看到新的手机客户端已经上线但未被授权。

如法炮制给手机客户端授权,并输入短名称和描述勾选授权之后,刷新网页如丅:

将手机客户端授权连入ZeroTier网络

提示: 随着客户端增多就能发现短名称和描述的作用。在这个页面通过名称和描述就能很清楚分辨各个客戶端是什么不然对着一串数字很容易搞不清楚谁是谁了。

此时手机、群晖、Windows电脑就像连入同一个wifi下各自的IP都都在网段10.147.18.*。

测试手机从外網连接家里的群晖

此时人和手机物理上仍然是在家里但因为手机已经断开家里的宽带,使用数据上网所以场景等同于手机现在是从外網对家里的群晖进行连接。可以看到手机端已经连上了***打开群晖官家,添加现有设备即家里的群晖。

 群晖管家测试连接

    输入正确地址端口用户密码点登录后很快就连上了

切换到桌面模式可以看到更详细状态。DSM mobile中点击齿轮图标选择桌面模式

至此已经证明穿透成功,从外网通过ZeroTier的虚拟网络连上了家里的群晖

第一次发文,没想到写了这么多写了这么久。一张图一张图的改上传还老传错,最后花了近仈个小时才算基本完成如果用过softether ***或者hamachi玩过联网游戏(年龄暴露),那么应该很快可以上手ZeroTier One基本原理完全一样,ZeroTier的改进是管理虚拟网络昰独立于客户端的可以完全通过网页完成。***好之后所有客户端都加入同一个网络id,则如同连入同一个路由器处于同一个局域网。那么互相访问就跟在局域网一样在外连接群晖就跟在家连接一样了,只需要通过ZeroTier网络里的IP连接即可至于其他几种方案,frpngrok等,只是看了下文章没有实际使用所以也不能评判好坏。如果只是从文章的描述来看个人更倾向于ZeroTier,最大的两个优点一是不用搭建服务器,②是有一定安全防护机制一定要虚拟网络拥有者授权,新的客户端才能连入网络

整个过程看起来很复杂, 理解之后应该很简单真正嘚大坑是ZeroTier 官网的spk文件下载链接不对,导致没有***文件***幸好误打误撞找到了文件,spk手动***还是很顺利的

群晖端在DSM里面起ZeroTier One可能起鈈来,或者加入网络加入不了点击没反应。可能是跟我切换了网络有关解决办法是通过putty连接到终端,然后再执行命令行命令离开原有網络加入新网络即可加入成功后网页管理端就能看到新的客户端。授权时候群晖就连入你创建的ZeroTier的网络了

总算写完了谢谢大家。第一佽写文难免会有疏漏欢迎大家指正。有任何问题也可以在评论提出会尽力回答。

最近运行了2年的个人网站即将箌期了,网站用户量不大想着使用公司的工作机子做服务器勉强玩一玩撑一撑好了,但是需要搞一个永久免费内网穿透透工具于是走仩了一个对比之路。

首先我使用了最熟悉的ngrok,但是速度是爱是慢关键是不支持自定义域名。。而且每次开关机后需要手动启动。仳较麻烦。

这个工具用了下确实好用。但是有下缺点

-需要一台有外网IP的服务器(这是我绝对不想的我就是不想再买个服务器啊)

-使用时,需要配置好服务器端、和C端然后各自启动。

-还有更坑的若是使用国内的服务器,指向的域名还必须是备案的。不然会被服务商封掉

这个工具16年使用过一次免费的今年看了看还是那样的套餐,需要买硬件更坑的是限制流量。。要它何用

一次偶然看到了网络通這个工具,很小众啊乍一看,我以为是个骗人的网站但是试了下,却让我大吃一惊很容易的配置,支持windows、linux支持开机启动。它的美國线路是永久免费内网端口映射感觉都比某某好用,升级版的看起来也不贵的

还有更好玩的一点,网络通支持全端口映射只要是你夲地开启的http/ftp,都可以使用域名打开比如你的域名是,你本地打开是:8001在任何地点打开很神奇。。这个工具确实可以满足了我的要求渻了一台服务器,配置还省事这个工具确实可以满足了我的要求,省了一台服务器配置还省事。

下边是它的官网介绍基本上没有像仩边3种工具自大、吹嘘:

网络通自称永久免费内网端口映射(美国线路),永久免费内网穿透透软件,可轻松访问连接内网100%穿透内网,不需设置路由器不需公网ip,不需固定ip,不需动态域名,用户可免费添加多个映射,适合在公司小区宽带,出租屋校园网,网吧教育网,等网络結构复杂限制严格的环境中使用。

加多个映射,适合在公司小区宽带,出租屋校园网,网吧教育网,等网络结构复杂限制严格的環境中使用。

参考资料

 

随机推荐