为什么要做内网穿透?
为了折腾,买了一台NAS当个人服务器
作者是一个喜欢折腾和患有“仓鼠症”的人,由于在个人电脑整活儿限制太大,经常需要用电脑搞其他的工作和娱乐,折腾一些有意义的事情不太合适,云服务器价格高,各项资源都很贵,本着能“白嫖”就不掏腰包的原则,买了一台NAS(当然要花钱,但是东西是自己的)服务器来折腾,在里面跑了各种服务和工具,比如:个人的博客、影音服务(Jellyfine)、alist、小雅、vscode等。
跑在内网的服务如何在外访问?
虽然很多成品NAS已经自带穿透服务,但是也仅仅限于管理NAS本身,如果想让自建的服务像一台真正的服务器一样,例如:通过自定义域名访问自建站点、影音服务以及其他的web访问,就需要做内网穿透。
常见的穿透方案有:
具体的使用细则参考对应的官网教程
- DDNS GO
- frp 简单、高效的内网穿透工具
- Tailscale makes secure networking easy
- OpenVpn Deliver secure access to your hybrid workforce
- ZeroTier, it is. Connect all of your devices on a single network that you provision and control
Zerotier (使用官网)
ZeroTier 是一种开源的虚拟网络解决方案,旨在提供简单、高效和安全的点对点(P2P)虚拟专用网络(VPN)。它允许用户通过互联网轻松建立虚拟局域网(VLAN),将分散的设备连接在一起,就像它们位于同一个本地网络中一样。
核心特点:
- 跨平台支持:支持 Windows、macOS、Linux、Android、iOS,以及部分嵌入式设备(如树莓派)。
- 易用性:无需复杂的网络配置,通过简单的客户端安装和网络 ID 即可快速加入虚拟网络。
- 高效连接:利用 P2P 技术,减少延迟,并尽可能直接连接设备。
- 灵活性:支持组播、多播、IPv4/IPv6、网络规则等,适合各种场景。
- 安全性:内置端到端加密(AES-256),保障数据传输安全。
- 集中管理:提供基于 Web 的控制面板,方便管理虚拟网络、设备和权限。
注册账号
打开ZeroTier官网,提供了多种注册方式
我这里选择谷歌账号登录,选择 Stay on Basic,这个是免费模式
基础版可以创建3个网络,每个网络添加10台设备,一个管理员和1个路由。
创建网络
点击 Create A Network来创建一个网络
之前可以免费添加50台设备,后来限制到25台,现在只有10台。
下面是我之前创建的账号
点击网络ID即可进入网络详情,在Setting里面可以更改一些默认设置
Private 是私有网络,需要管理员认证后才能加入网络,默认开启,不建议更改
这里默认配置的网段10.147.20.0/24,可以更改网段,避免跟自己实际的局域网冲突,还可以添加一条路由
更多设置就自己去摸索吧。
客户端加入网络
zerotier提供了多种客户端:Windows、MacOS、Linux、iOS、安卓、Docker等安装方式,选择对应的客户端安装即可,接下来以安卓手机和一台windows主机为例
安卓手机
去goole下载安卓客户端,安装到手机,安装好之后的界面
在网络ID旁边点击二维码按钮获取网络ID二维码
手机扫描加入网络
在管理后台点击Authorize完成认证
等待分配IP后,就代表设备已经入网
Windows安装
从官网下载安装包进行安装,点击添加网络
后续认证参考上面,等待分配IP,查看状态
状态OK,代表设备入网,然后我们在命令行查看一下状态,输入
zeritier-cli peers,可以看到设备的的连接情况:
现在两台设备都已经入网,LEAF代表的是叶节点,也就是我们的设备,DIRECT代表我们的两台设备是P2P连接,这是最佳状态。如果是RELAY则是走的官方的服务器转发,由于官方服务器都在国外,网络质量可能会很差。
测试一下网络连接
现在手机跟电脑已经组网成功
小结
我把我的流量类型大带宽、便宜的云服务器和家里的NAS设备组网,再用自己的域名解析到我的云服务器上面,就可以实现自建服务在任何地点都能访问了。
当然,组网的设备可以像真正使用局域网的一样,可以跟小伙伴一起联机打游戏都是可以的。