如何从外网远程访问家里NAS?不用内网穿透行不行?

 买了NAS后,肯定会想部署一些自己的应用或者Web,遇到的第一个问题就是如何从外网远程访问家里NAS?详细解说这个技术的文章有很多,frps、cloudflare等等内网穿透技术,今天我根据自己的经验,从另一个角度来探究下这个问题,没有内网穿透可不可以实现。

 

为什么从外网远程访问家里NAS这么受关注?

 

因为不管是从IPV4地址即将耗尽的角度,还是从现在GF对网络管理的要求来说,运营商默认给的都会是一个内网IP地址,通过互联网是无法访问的。

什么是内网IP地址呢?

   ?

首先简单介绍下IP地址(IPv6距离大众还是有距离的,该处只讲IPv4)  

IPv4地址是唯一标识互联网上每个设备的32位数字地址,一共分为五类。

A类保留给政府机构,网络号范围:1.0.0.0—126.0.0.0 

A类地址中的私有地址和保留地址: 

① 10.X.X.X是私有地址,范围(10.0.0.0—10.255.255.255) 

② 127.X.X.X是保留地址,用作循环测试用的。 

B类分配给中等规模的公司,网络号范围:128.0.0.0—191.255.0.0。 

B类地址的私有地址和保留地址 

① 172.16.0.0—172.31.255.255 是私有地址 

② 169.254.X.X是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP。 

191.255.255.255是广播地址,不能分配。 

 

C类分配给任何需要的人,网络号范围:192.0.0.0—223.255.255.0。 

C类地址中的私有地址: 

192.168.X.X是私有地址。(192.168.0.0—192.168.255.255) 

D类用于组播,地址范围:224.0.0.0—239.255.255.255

E类用于实验,地址范围:240.0.0.0—255.255.255.254

 

总结起来,内网IP如下:

IP等级   IP位置   默认子网掩码

Class A 10.0.0.0-10.255.255.255              255.0.0.0

Class B 172.16.0.0-172.31.255.255           255.255.0.0

Class C 192.168.0.0-192.168.255.255       255.255.255.0

 

运营商给的一定是内网地址吗?答案当然是否定的。现在运营商默认都采用光猫拨号,该模式下,光猫后台权限掌握在运营商手里,一旦宽带网络出现什么问题,运营商通过远程排查基本上就能判断故障的所在,有助于及时帮助用户解决问题,减少运维人员上门,但对用户来说,只能使用内网IP。

如何获得公网地址?

最佳就是装宽带时,要求自己拨号,理由就是家里有智能设备,需要进行外网远程连接。如果已经装好了,可以打电话故障报修,要求给外网地址,并派运维人员上门调试。(此处说的外网地址均指动态IPv4公网地址,也就是每次拨号都可能是不一样的外网地址)。

 

有的文章强调运营商不给公网地址,应该指的是固定的公网地址,除非是商业公司,否则不可能给固定IPv4地址,我接触到的圈子或信息显示,动态的获取还是很容易的。

有了动态的公网地址,也不是随便可以用的,首先80,443这些端口是封禁不能使用的,其次是不能挂PCDN的,更不能做非法的事情。在家里放置服务器,提供各种网络服务,也是不建议的,存在违规。个人建议:只是作为家庭设备或应用的远程连接通道使用,比如相册、博客、笔记等,仅供家庭成员使用。

备案的问题

 

再说说备案,理论上备案都是需要的,可以随便买个好记的域名,因为仅自己使用,哪个便宜买哪个就好,然后填写资料,对域名进行备案。web网站不使用80、443等端口,且不提供开放服务,可以暂不备案。

总结

域名简单的设置后,借助于DDNS服务,或者ArDNSPod程序,实现域名与动态IP地址的绑定,就可以轻松实现外网对NAS的访问。

 

此时来回答最初的问题:没有内网穿透完全可以,更不需要复杂的配置,用好动态公网地址、托管在DNSPod的域名、ArDNSPod即可。

 

DNSPod实现动态域名解析

1. 拥有一个域名,并将解析托管在DNSPod上。
2.登陆dnspod控制台https://console.dnspod.cn/dns/list,创建一条A记录解析,IP值暂时随便填就行: 
 
3.打开https://console.dnspod.cn/account/token,进入密匙管理界面,创建一个调用API的token。点击 创建密匙 ,名字任意(建议便于识别不同的终端设备)。系统会自动生成一个ID和一个Token,Token只会在创建时显示,最好是保存到一个安全的文档里。
 

4.下载ArDNSPod客户端

ArDNSPod是利用DNSPod实现动态解析的项目,github地址:ArDNSPod  https://github.com/anrip/ArDNSPod
下载地址很多,略有区别,比如:
https://github.com/imki911/ArDNSPod 
将之前得到的ID和token写入dns.conf 文件, 并指定要绑定的子域名
 
5.运行ddnspod.sh,就可以获得IP地址,更新域名的解析值了。

到域名控制台查看,已经更新了记录值. 现在就可以通过域名访问NAS了。

 

 

威联通QNAP动态更新数据

 

这样只是运行一次,只更新一次IP地址,那如何实现自动更新呢?

以QNAP威联通为例:

 

1.以SSH方式登录QNAP,不会登录?私信指导,很简单。

2.直接编辑crontab文件(vi /etc/config/crontab),在其中加入一行(路径根据实际写):

*/1 * * * * /share/Project/shell/ddnspod.sh >> /share/Project/shell/log/ddnspod.log

 

crontab配置参考
*  *  *  *  *  command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

 

3.配置好后,调用以下脚本重启crontab生效。

crontab /etc/config/crontab && /etc/init.d/crond.sh restart

 
 

 


说明 | 如文章内容、图片侵权,请联系删除。文章部分图片来源于网络,仅供参考。

THE END