(99+ 封私信 / 81 条消息) 如何解决没有公网IP情况下对家里NAS的高速远程访问? – 知乎
https://www.zhihu.com/question/328083216/answer/3177422625
本文适用于:
1、黑群晖
2、没有公网固定IP
3、无法使用Quick Connect实现远程访问家里的NAS
需要实现:
1、远程查看和下载家里NAS的文件
2、群晖Synology Photos远程同步备份照片和视频,以及在线查看
3、DS Video远程看家里的电影
4、DS Cam远程查看家里的ONVIF协议的监控摄像头
※其实就是实现Quick Connect的绝大多数功能
准备工作如下:
1、注册阿里云,并申请自己的域名
2、开启黑群晖DOCKER,创建阿里云DDNS
Step1 注册阿里云
基本操作,在此不赘述
Step2 申请自己的域名
2.1 点击以下链接,进入“阿里云企航”主页,搜索自己需要注册的域名,并查询是否可用
2.2 在可用的域名列表中,选取你想要的域名进行购买
我一般都是选最便宜的
2.3 加入清单,点击右上角的“域名清单”购物车,进入结算界面
2.4 使用支付宝进行结算,然后就购买成功了
2.5 回到 “阿里云” 的 “工作台”,进入 “AccessKey管理”
2.6 创建AccessKey
2.7 进入:阿里云 → 工作台 → 域名解析
记录类型:选择 IPV6 地址
主机记录:可不填,为空
解析请求来源:默认
记录值:填写黑群晖的IPV6地址
TTL:默认10分钟
然后,“确认”即可
以上阿里云的设置就完成了。
Step3 黑群晖设置
3.1 进入黑群晖的“套件中心”,打卡“Docker”
3.2 在打开“Docker”的“注册表”时,你会发现弹出“查询注册表失败”
这个属于正常现象!
因为不管是白群晖,还是黑群晖
Docker已经被墙了
要么有梯子,要么用Pull拉取的方法来进行操作
3.3 下面来介绍如何拉取阿里云DDNS的注册表
3.3.1 点击下面链接,下载Finalshell,并安装
在此附送Finalshell的激活工具,不激活也没关系
3.3.2 启动黑群晖的SSH功能
3.3.3 打开Finalshell,建立SSH连接,开启黑群晖的Root权限
SSH连接建立成功!
输入命令行,开启黑群晖root权限
sudo -i
弹出Password的时候,在命令行输入密码(你的黑群晖管理员密码),然后回车,开启root权限
显示上面红框的内容,即表示已经成功开启了黑群晖的root权限
3.3.4 拉取sanjusss/aliyun-ddns注册表
docker pull sanjusss/aliyun-ddns
显示如下图,即表示拉取sanjusss/aliyun-ddns注册表成功
在黑群晖Docker里面“映像”查看,已经有了sanjusss/aliyun-ddns
3.4 创建Aliyun-ddns容器
命名容器名称,需要英文
输入阿里云AccessKey的账号、密码,以及域名
删除3个标红的必填字段
点击保存,下一步。
3.5 查看是否获取到公网IP地址
路径:容器 → 详情 → 日志
再回到 阿里云 → 工作台 → 云解析DNS,查看是否连接成功
以上就完成了
接下来在手机端验证是否可用实现外网访问
首先,关闭手机WiFi
其次,进入DS File或者Photos
外网访问成功!
传输速度,取决你的宽带上行和下行速度!
关于更多黑群晖和All in One,可用查看我其他文章
编辑于 2023-08-22 05:30・IP 属地湖南
更多回答
你可以自己做一个基于Zerotier的虚拟局域网,刚好我写了个从零开始组建的教程。
小白技术文档-从零开始的内网穿透教程与应用踩坑记录
我是Circaboy,废话不多说,本篇文章就是介绍从零开始搭建一个属于自己的虚拟局域网,目的就是把我手里的几台电脑和NAS都统一到一个虚拟局域网下面,以便于我实现异地管理文件。
本文面向的对象是那些没有IPv6地址,没有公网IP地址但是有内网穿透需求的用户。
目前我手里的设备:Surface Pro3,SurfaceBook一代顶配版,高性能自组装主机两台,威联通TS453Dmini一台,威联通。
Surface Pro3是4G+256G i5-4300U,加了个Docker当远程轻主机用。SurfaceBook1是16G+2T nvme i7-6600U,当我主力码字的设备用。高性能自组装主机A是32G+512G SATA SSD i7-8700K 1080Ti+Titans RTX,当远程服务器跑训练任务。高性能自组装主机B是16G+1T nvme SSD R5-3400G 1080Ti,当高性能备份主机用。威联通TS453Dmini是8G内存,加了个480G的固态以及2T的机械当数据备份盘用。威联通TVS951N是4G内存,加了两块2T的三星SATA SSD以及两块西数的8T组RAID1做深度学习数据储存用。
这些设备都分散在两个地方,所以需要我把他们连在同一个局域网内部,以便于我在任意一个地点的时候都能无障碍访问所有的设备以及对其进行管理。
目录:
1.准备事项:zerotier账号,腾讯云轻主机(用于自建Zerotier的moon服务器),Windows电脑一台。
2.zerotier账号注册与配置踩坑
3.腾讯云主机注册与配置踩坑
4.Zerotier的Moon服务器搭建配置踩坑
5.NAS与Windows设备加入Moon服务器踩坑
6.基于内网穿透的应用踩坑:RDP远程登陆教程,基于腾讯云主机的Q-WAN教程,
正文开始:
1.准备事项:zerotier账号,腾讯云轻主机,Windows电脑一台。
Zerotier账号是用于组件虚拟局域网的,腾讯云轻主机是用于用于自建Zerotier的moon服务器,也能白搞一个公网IP,其余的设备都要保证正常联网使用。
2.zerotier账号注册与配置踩坑
之前我写过一个zerotier注册账号的教程,在这里我就再发一遍:
Zerotier设置与问题解决部分:
ZeroTier 这一类 P2P VPN 是在互联网的基础上将自己的所有设备组成一个私有的网络,可以理解为互联网连接的局域网。最常见的场景就是在公司可以用手机直接访问家里的 NAS,而且是点对点直连,数据传输并不经由第三方服务器中转。所以安全性非常有保障。
Zerotier 在多设备之间建立了一个 Peer to Peer VPN(P2PVPN) 连接,如:在笔记本电脑、台式机、嵌入式设备、云资源和应用。这些设备只需要通过 ZeroTier One ( ZeroTier 的客户端) 在不同设备之间建立直接连接,即使它们位于 NAT 之后。连接到虚拟 LAN 的任何计算机和设备通常通过 NAT 或路由器设备与 Internet 连接,ZeroTier One 使用 STUN 和隧道来建立 NAT 后设备之间的 VPN 直连。简单一点说,Zerotier 就是通过 P2P 等方式实现形如交换机或路由器上 LAN 设备的内网互联。
第一步是注册Zerotier的账号。
这个是邮箱注册,注册完之后免费使用设备数量是50个,对于99%的人来说是够了。毕竟我这样的手里常年一大堆电子设备的人,能同时使用的路由器加电脑加起来也不超过十台。
第二步:登录和创建网络
注册完之后就直接登录网站,按照下面的指示创建网络就行。我是把我的网络名能用中文就用中文,这样看起来方便一点。
创建网络:创建一个新的网络之后,我们得到一个 Network ID,这个在后面的设备连接时需要用到,点击刚刚创建的网络我们可以设置更多选项。默认的设置就可以用了,右边 IPv4 的设置就是分配设备内网 IP 网段,其他的设置可以在 Setting help 里看到说明,不了解的不建议乱设置,如果不小心把自己的网络暴露在外部,会相当危险。
第三步:把手里的设备加入这个网络。
我现在手里的设备都是Windows10设备,所以在他们主页上下载相应的平台安装包就行,安装包后缀是msi结尾。
下载之后双击安装,一直按next直到它安装成功。
装成功之后,你的任务栏部分会出现一个Zerotier的图标,右键点一下鼠标,选择join Network。
有了这个窗口之后,我们再打开我们前面已经登录了的zerotier页面,然后在Network标签下可以看到我们创建的网络的基本信息,我给我的网络取的名字是“家庭内网”,我们要把我用椭圆部分圈出来的一串代码,也就是NETWORK ID下面的一串代码,复制,然后粘贴到上一步Join a Network弹出来的窗口中,我建议把所有的都勾选上,以免遗漏。
然后你的几台电脑都加入我创建的“家庭内网”之后,我们还需要进这个网络后台把这些设备的权限都打开。就点这个NODES,然后它会自动跳转到“家庭内网”的后台管理页面。
然后往下拉页面,就会看到自己的设备,我现在的设备都是Auth下面打勾了,代表这些设备被授权了,如果没打勾,就代表这个设备加入了你的网络,但是不能访问你的网络。
要着重关注的是Managed IPs下面的IP地址,这个地址就代表了你现在设备在Zerotier的“家庭网络”里面的虚拟IP地址,旁边的Last Seen下面代表你这个设备现在的在线状态,比如我现在手里的两台设备都在线,显示的就是ONLINE。
到这一步之后,就可以进行下一步了。
我上面的设备中,SurfaceBook1-7是发起端,地址是192.168.192.190,也就是我平时拿着在外面跑的笔记本,MacAir是接收端,地址是192.168.192.97,也就是我平时扔在家里当服务器的笔记本。
一直到这一步都是很顺畅的,但是之后可能会有人出现新的问题,那就是我从SurfaceBook1-7上访问MacAir的时候会显示连接失败。死活找不到解决方案。
因此,建议在拿到两个设备的“家庭内网”IP地址之后,先在CMD命令行窗口Ping一下地址,看能不能Ping通,如果能Ping通的话就走下一步RDP连接部分,如果不能Ping通的话,建议看看后面我是怎么解决的:
现在我查到的解决方案是一个大佬写的:问题的关键在新建的Zerotier网络虽提供了一组 Flow Rules 流控规则,初次启动时却不会自动应用。
就是在Flow Rules最后一行加一个空格,然后保存就行。这就让Rules启用了。
问题的原因是:
所以我也是采用了这个解决方案之后,就顺利解决了我zerotier网络下各个设备不互通的问题。
3.腾讯云主机注册与配置踩坑
买腾讯云轻主机部分:
买云主机有两个目的:一个是获得公网IP,一个是有个搭建Zerotier Moon服务器的稳定环境。
其实买腾讯,买阿里,或者买华为云都行,还有一堆小的云主机服务商也能买,但是我建议买大家耳熟能详的品牌,最建议买腾讯和阿里的,因为现在国内买这样的云主机需要实名认证,而大家的腾讯和阿里系的账号基本都是实名认证过的,不需要额外的认证。
不过我买腾讯云的核心理由就是它便宜:
我买的三年,1核加2G内存,6Mbps的宽带,以及1000G流量包,三年只要219。后续续费肯定是飞天一般的贵,但是三年后再看吧。
至于我为什么没买阿里的?因为阿里的比这个贵一点吧。
单核,2G内存,装个Debian,给我跑一下服务,就够了,后期加点什么自动签到打卡的脚本上去,它也不是不能用。
进入腾讯云界面,然后点购买,扫码登录你的微信(我也不知道为什么腾讯一定要所有的服务都用微信登录),然后会自动进入微信小程序,然后你就授权登录了。网页端进入服务器配置界面:
地域:选择与您最近的一个地区,选一个地理位置距离自己最近的地方就行。
机型:选择您需要的云服务器机型配置。这里我们选择 “入门设置(1核1GB)”,因为这个最便宜。
镜像:选择您需要的云服务器操作系统。这里我选择的是Debian,不过选别的也都行,每个系统选好之后都会给你预装好。
公网带宽:勾选后会为您分配公网 IP,默认为 “1Mbps”,不过轻主机这个已经固定死了,就是6Mbps。
购买数量:默认为 “1台”。 购买时长:默认为 “1个月”,我选了三年。
买完服务器之后,腾讯会让你先重置密码,然后你进入腾讯的服务器-轻量服务器-控制台,就可以看到自己的主机了。其中是默认绑定了一个公网IP地址,相当于你花两百多买了三年的公网IP。
你可以选择在网页端打开命令行界面管理,也可以在本地用SSH登录进行管理。
建议使用MobaXterm作为远程管理服务器的软件,这个软件支持记录你的登录设置,特别是还有图形化文件管理界面,很适合新手使用。
4.Zerotier的Moon服务器搭建配置踩坑
上面说的Zerotier虽然可以互相访问,但是由于流量还是走的zerotier的官方服务器,在高峰期或者说跨宽带运营商的情况下,网络质量实在是堪忧,最直接的体现就是ping值忽高忽低或者掉包,如果是用来长期使用,这网络质量还是有点不行。正好腾讯云有台5M带宽的服务器,zerotier又支持自建中转服务器,腾讯云的BGP网络用来中转流量再合适不过了。
我的腾讯云服务器安装的是最新的Debian,作为zerotier的中转服务器(moon),zerotier的安装方式如下:
但是Zerotier作为moon,还需要再执行几行命令,相关命令如下。
生成moon模板配置文件:
cd /var/lib/zerotier-one zerotier-idtool initmoon identity.public >> moon.json
编辑生成的moon模板配置文件:
vim moon.json #
修改这行: "stableEndpoints": ["1.2.3.4/9993"]
不过其实更建议用MobaXterm的图形化文件管理修改这个文件,双击打开,然后直接保存更新,就不用学vim命令行了,vim的操作逻辑很烦。
注意需要将上面的1.2.3.4替换成实际的公网IP地址,不能是内网地址。
要注意的一点是,在配置之前,还得先看看自己的网络网关开启9993端口没有,如果没有的话,建议先开启了再去配置。
并且,如果服务器本身开启了防火墙,需要将9993端口进行放行;同时,服务器安全组也需要放行9993端口,比如我的腾讯云轻量云服务器安全组设置截图:
然后根据模板文件生成最终的moon文件:
zerotier-idtool genmoon moon.json
执行完成之后,会在当前目录生成一个名称为000000xxxxxx.json的文件。
创建对应目录,将生成的配置文件放置进去:
mkdir moons.d mv 000000xxxxx.moon moons.d
重启服务: systemctl restart zerotier-one
客户端加入自定义的moon 步骤也很简单,Linux及macOS直接在终端执行,Windows需要使用管理员权限在PowerShell或者cmd执行,命令如下:
zerotier-cli orbit 0000000xxxxxxxx 0000000xxxxxxxx
如果加入成功,会有如下提示: 200 orbit OK
要注意的的是,这个命令行后面你的“0000000xxxxxxxx”要打两次,这样才能正常执行加入。
查看是否加入moon:
在非moon设备上执行如下命令:
zerotier-cli listpeers
如果出现了对应的公网服务器IP及9993端口,
说明数据是走moon中转的。
5.NAS与Windows设备加入Moon服务器踩坑
按道理来说,在Windows和NAS设备上装了Zerotier之后,再去加入Moon服务,也就是说执行了zerotier-cli orbit 0000000xxxxxxxx 0000000xxxxxxxx这个命令行之后,它就会自动加入Moon服务器,你就有自己的中转服务器了。
如果你一直获取不了moon服务器的地址,比如这样:
中间MOON结尾的图并没有完美获取公网IP地址,
如果加成功的话,应该是这样的。
出现获取不了地址的原因,我排查出来有几个解决方案:
1.就是9993端口的问题,首先确认自己的9993端口是否开放。
2.是自己zerotier客户端设置问题:
打开zerotier客户端,点击“show networks…”,如下:
再把下图红框中的几个对勾打上,重启服务"ZeroTier One"和客户端。就会发现现在可以连接上moon了。
zerotier打洞使用p2p传输
其实zerotier是支持p2p打洞流量传输的,并不是自建了moon所有流量就经过moon服务器中转的,如图这是我从我电信宽带的设备远程连接到移动宽带内网的设备,在移动宽带内网的设备的带宽统计截图:
稍微有点惊喜的是,我腾讯云公网服务器带宽是5M,经过zerotier打洞之后使用p2p协议,两台设备之间的带宽可以达到10M,不知道是不是能达到其中一方的带宽上传上线。
6.基于内网穿透的应用踩坑:RDP远程登陆教程,基于腾讯云主机的Q-WAN教程
在组建完Moon服务器之后,我们就可以愉快地在虚拟内网环境下对各个设备进行互访管理了。
最基础的:输入我NAS的内网地址,我就能在外网环境下管理我的NAS服务了,以及把我的NAS硬盘映射成Windows的本地硬盘。
比如我在办公室的电脑上的浏览器上输入我放在家里的那台TS453Dmini的虚拟内网地址的,
比如我在办公室的电脑上映射的我放在家里的那台TS453Dmini的硬盘,实现本地化管理异地硬盘。
有了虚拟局域网之后,就能完成异地远程办公室主机和家里的主机互访了,只需要点开Windows自带的远程桌面,然后输入虚拟内网地址,再点一下连接,然后就可以啦。
哦对了,还有一些很有意思的方面,我不敢写太多,就简单提一下吧,比如在自己的NAS上面装一个CDN服务,回收一下电费,在NAS上面装一个宝塔面板实现京东京豆自动打卡领,一个月一万多个京豆不是梦。
但是这些服务都需要及时维护,所以先做一个内网穿透实现异地流畅访问那是必须的。
总结:
总体来说,整个过程磕磕绊绊,还是把它写下来了,踩坑也踩了很多。
甲方小爸爸,退休科技媒体人,大众CUT车友溜车队长,传武二段
买NAS回家,如果只在局域网里转悠,那肯定是亏大本。只有插上云端访问和应用的翅膀,进入公网后,才算是真正解锁了功能。但由我国互联网运营商的各种初始化设置不同,很多朋友在这方面都遇到了难题,今天,笔者的攻略将帮助大家解决问题。
第一步:如何获得和确认公网IP
什么样的运营商网络可以获得公网IP?
答:据悉,中国电信和中国联通的宽带都是可以获取动态公网IP的,中国移动据说会建议你移除宽带(哈哈哈~~~~~)
在使用公网IP前您需要哪三件事?
1.打电话给运营商,询问自己的宽带账号
2.将光猫改成桥接模式,用自己路由器使用宽带账号进行pppoe拨号连接
3.检查自己的宽带是否为ipv4公网ip(电信的独立IP有时采用内网形式在一个小型地址池中,并不是真正的公网IP,下面是检查方法),如果不是真公网IP,请再打运营商电话告知要求公网IP。
- 电信运营商会上门要求您签署一份桥接安全协议,为网络安全请大家自觉签署好
检查真公网IP方法:进入路由器管理界面记录一下WAN IP,如下图为116.230.65.xx。
随后上度娘或者其他搜索引擎都可,搜索IP,查看当前网关的IP。如果两者一致,恭喜您已经获得了公网IP,否则就说明您在一个内网地址池中。
第二步:设置端口转发
有了公网IP后,从外网输入地址访问还是不能直达NAS,就好像去小区找人,只知道小区地址却不知道门牌号还是找不着。
门牌号就是NAS在您自己内网中的IP地址和端口号,可以通过威联通自己的Qfinder软件来找到,比如下面我要寻找一台叫gamestation的NAS,可见其地址是192.168.0.200,我双击后就可以得到其192.168.0.200:5000的完整IP地址和端口号。
路由器里面会查看设备也可以从路由器中直接找到相关设备的IP地址,一般威联通NAS的默认访问端口是5000。
随后就是在路由器中设置好转发,将NAS的IP地址、内部端口(外部端口可一致,也可自己修改成别的),通讯协议有TCP、UDP和BOTH选,一般就选BOTH意思2个都用。
到这里就搞定了,通过这个公网IP地址+端口号5000,您可以自由在任何有互联网的地方通过浏览器访问到家中的NAS了,此时包括威联通手机APP Qfile、Qsync、QuMagie等等都可以正常使用了。
第三步:公网IP变动连不上?设置DDNS解决
到这一步基本是成功了一大大大大大大半,后面是一马平川了。
因为公网IP是运营商提供,全球IP数量有限所以您家中路由的公网IP其实一直会变,只是你不察觉而已。如果通过输入IP地址访问,一变就连不上了,但没关系,合格的NAS厂商都会提供DDNS服务,这是一种绑定“自定义访问地址”和家中设备公网IP的服务。
即,你可以获得一个永久不变的自定义访问地址,在浏览器地址栏里面填入他,会自动转到家中的公网IP。连接传输方式还是一样安全,但你再也不怕公网IP变动了。
通过myQNAPcloud Link云连接这个功能就可以设置。
此处可以通过威联通服务器,自由设置访问路径为“自己编.myqnapcloud.cn”的绑定关系,设置完毕后“自己编.myqnapcloud.cn”=“公网IP”了。
如果您很清楚需要开什么端口可以不使用upnp服务,如果不清楚,建议您打开。在支持upnp的路由器上,他能帮你打开必要的端口,这样外网才能准确的接入进来。
到了这一步基本NAS外网和云存储功能都卍解完毕了,通过你自定义的“自己编.myqnapcloud.cn”,你已经能访问到家中的NAS了。
当然在其中也会遇到一些常见问题,我列举在下面:
1.公网IP正确设置后,却无法访问
请从这几方面开始排查,首先检查自己路由的NAS地址内网是否变化,比如端口映射时,NAS为192.168.0.111,而重启或换网口后可能变成了192,168.0.222,端口映射失效自然也就连不上了。
解决这类问题的方法是使用固定的NAS IP地址,在NAS的网络管理中或路由的静态地址锁定中都可以设置。
当然千万要记得,在DNS里面设置好网关为DNS服务器,不然NAS会上不了网,DNS是域名解析服务器,没他在网络上你哪也去不了。
2.实在弄不到公网IP,运营商不肯给
这个时候只能使用NAS厂商自己的云服务了,比如威联通的就叫myqnapcloud。合格的NAS厂商至少为大家准备一条无公网时的中转服务器通路,当然,服务器资源有限,随着用户数的不断变大,难免有速度慢的情况。
这时候还有一条道路就是使用内网穿透工具,nkn、花生壳、frp、ZeroTier,相关攻略太多大家可以直接搜索寻找。这类特点就是速度尚可,但有些是流量收费、有些是包时收费制,会产生额外的开销啦。
3.公网IP连接后仍然觉得速度慢
一般而言公网后,两端的传输速度仅受限于当前网速,即2端都是1000兆宽带,就是100MB速度咯,手机5G连接就是5G的速度。
如果还觉得慢,断断续续要排查自己的网络硬件,50%问题都出在网线头接触不良、IP冲突等问题。
而网页打开缓慢、传输慢,要细致判断是否是机器的性能问题,比如J4125的处理器2g内存的入门NAS,如果在进行RAID组同步或者大数据量传输,那肯定是忙不过来的。
经常高负荷的朋友只能选,8盘以上AMD v1500b的企业机咯,如果嫌太贵,消费级目前最强的大概是威联通TS-564 3+2盘位NAS,可以与v1500b一较高下,用的N5105赛扬四核CPU+8G DDR4 金士顿2666内存,硬件上堆料足够了。
以上是NAS上公网IP的全部内容,其实非常简单,总结而言就是,申请、映射、DDNS三个步骤,留心跟随操作就能够成功,如果不成功请在文章下面留言。