1、前言
使用NAS,一般除了在家里通过局域网访问,还会有外网访问的需求,即在外面通过移动网络或者其他网络访问家中的NAS。
正常情况下在外面是没有办法访问家庭网络的,甚至是nas,因为nas获取的是局域网IP,而不是广域网IP(全球唯一地址)。
一般有公网 IP 的朋友,可以直接使用 IP:端口 的方式访问即可,不过通常情况下运营商分配给家庭的 IP 都是局域网,无法直接通过 IP:端口 的方式进行访问。
不过可以尝试给运营商客服打电话,需要公网IP,不过通常情况下不会给(IPv4地址数目有限),即使有,也会给动态IP(每次重新拨号分配的IP不一样,或者一段时间后会自动更新)
如果幸运的话,运营商可以提供公网IP地址的话,通常是动态公网IP,那么域名则是必须要用到的(固定IP也可适用)
IPv4+端口格式:113.87.100.125:80,如果是固定IP还行,动态IP的话,每次都要查看运营商分配的IP是多少,通过这个IP才能访问,但是通过域名+DDNS的方式,可以解决这个问题。
域名:为IP起别名,指向这个 IP地址,比如百度提供的域名:baidu.com,即使百度公司的服务器IP变了,域名还是这个,简单好记,不用担心 IP 变化。
DDNS:通过DDNS服务器可以让域名解析为对应的IP地址,如将“baidu.com”解析为“103.235.46.40”,而不是其他的,当IP变化时,更新DDNS后,域名就会解析到新的IP。
以下内容适用于会使用公网IP访问家庭网络的朋友,因此在看下面的内容之前请先确保可以通过公网IP访问家庭网络或nas。
通过公网IP访问家庭网络,首先需要将光猫改为桥接,由路由器直接拨号上网获取公网IP,否则即使拿到了公网IP,也无法连接家庭网络(光猫拨号,路由器拿到的是光猫分配的局域网,所以不能通过公网IP连接到路由器,当然也可以开启光猫的DMZ功能,不过还是建议光猫改为桥接使用)。
如果在外通过公网IP需要连入nas,有以下两种方式:
- 使用 DMZ 主机功能,将nas完全暴露在互联网中,访问公网IP就是直接访问nas
- 使用NAT服务,通过端口映射的方式实现,只将部分端口暴露在互联网中
个人建议第二种;第一种适用当局域网内某台计算机需要对外提供服务的端口不确定时,可以将它设置为 DMZ 主机。第二种的话还可以访问局域网内其他联网设备,不止是nas,并且安全性比第一种高很多。
2、域名获取
2.1、购买域名
可以在阿里云、腾讯云或者花生壳购买域名,具体方式可以自行百度。
2.2、域名备案
购买域名完成后,国内使用域名解析是需要进行备案的(如果域名只是用于保护收藏,那是不需要备案的),否则可能会出现网站无法打开。,具体方式可以自行百度。
3、域名解析
即使申请的公网IP是动态的,刚接触域名的朋友也可以通过固定IP的方式手动设置域名解析内容,多了解域名的概念和使用,等熟悉之后再通过动态IP的方式去更新域名解析内容。
假设获取的一级域名是“example.cn”。
3.1、固定IP
1、如果能拿到固定IP的话,直接设置云解析DNS即可。
2、选择“产品控制台”
3、添加购买的域名
4、添加完成后,右侧点击“解析设置”,添加记录。
5、根据家里公网IP是IPv4还是IPv6进行选择设置即可,确认后状态为“正常”即可。
注意:上述设置的是二级域名,当然也可以用一级域名指向这个固定的IP(“home”改为“@”),那么不管是“home.example.cn”还是其他的“xxx.example.cn”都会指向这个IP,所以不建议使用这个方式,通过不同的一级域名主机记录可以指向多个IP是比较划算的,不然需要多购买几个域名(钱多除外)
假设公网是IPv4,IP是“113.87.26.145”,之前通过输入“http://113.87.26.145:5000”可以访问群晖nas的web界面,那么添加解析后可以输入“http://home.example.cn:5000”也能进行访问。
假设公网是IPv6,IP是“240e:3b0:3450:c4f8:211:32ff:fe23:5678”,之前通过输入“http://[240e:3b0:3450:c4f8:211:32ff:fe23:5678]:5000”可以访问群晖nas的web界面,那么添加解析后可以输入“http://home.example.cn:5000”也能进行访问(前提是访问设备支持 IPv6)。
3.2、动态IP
通常情况下,个人很难拿到固定的公网IP(这里指IPv4,因为IPv4资源宝贵,目前不够用;不过现在IPv6基本上都是公网IP),即使能拿到动态的公网IPv4,也是很好了,毕竟很多地区已经申请不到了(钱给够也是可以的),且用且珍惜!(IPv4比IPv6使用更广泛,目前还有很多设备或者app不支持IPv6)
动态的公网IPv4,IP地址会变化,每次路由器拨号都会变化,也会定期的变化,所以如果通过IP地址去访问的话,都要时刻关注家里的路由器获取的公网IP是多少,否则就连不上nas,即使按照固定IP设置的域名方式,虽然通过域名不用每次重新输入新的IP地址,但是也要去更新域名解析中对应的IP地址。
那么有没有一种方式可以自动更新域名解析中的IP地址呢?那当然是有的!!!还是以群晖nas和阿里云为例,通过阿里云的AccessKey更新动态域名DDNS。
1、进入阿里云控制台,点击头像后,在点击AccessKey管理。
2、进入后弹出提示框,建议选择使用子用户AccessKey,可以设置权限
3、点击创建用户按照步骤来
4、设置登录名称和显示名称(随意填写),然后确定
5、为其设置权限
6、找到或搜索“AliyunDNSFullAccess”,点击自动选择添加,点击确定,完成
7、点击用户开始准备创建AccessKey。
8、创建AccessKey后,记住AccessKey ID和AccessKey Secret!!!等会需要用到
3.2.1、使用群晖自带的DDNS接口更新阿里云域名
1、打开控制面板,找到外部访问 -> DDNS,然后点击自定义进行添加,填入“aliyun”(可自行命名),内容按照下面的复制粘贴后,保存即可。
https://ddns.bkood.com/dns/quick/ali/default?ip=__MYIP__&hostname=__HOSTNAME__&ak=__USERNAME__&sk=__PASSWORD__
2、新增一个,服务供应商选择刚才自定义添加的,主机名称就是二级域名,比如之前设置的“home.example.cn”,用户名/电子邮件则是“AccessKey ID”,密码/密钥则是“AccessKey Secret”;确定即可,如果没有启动,则选中后编辑,勾选“启用”保存即可。
3、查看状态,显示正常即可。
4、可登录阿里云,查看一级域名的解析记录,对应的主机记录的记录值就是更新后的IP地址。
3.2.2、使用docker安装aliyun-ddns更新阿里云域名
上面通过群晖自带的DDNS接口好像只能更新IPv4的值(我自己尝试了没更新上去),如果用的是公网IPv6,那么可以采用docker安装aliyun-ddns更新阿里云域名,这一个方式适合所有可以安装docker的设备或系统,不止是群晖nas。
1、通过docker安装(aliyun-ddns-cli也是可以的)
2、安装完成后选中它并启动,进入后点击高级设置,可以勾选“启用自动重新启动”。
3、在环境栏中填写信息,DOMAIN是之前设置的“home.example.cn”,AKID则是“AccessKey ID”,AKSCT则是“AccessKey Secret”,点击应用即可,之后按照步骤完成即可。
环境变量参考:
4、最后点击应用完成,可查看运行状态
5、可登录阿里云,查看一级域名的解析记录,对应的主机记录的记录值就是更新后的IP地址。
4、附
域名设置完成后,可以通过电脑查看域名解析出来的IP是多少,“CTRL+R”打开命令行,输入“cmd”进入命令行界面。
- 输入“ipconfig /flushdns”刷新DNS解析缓存(为了快速响应,通常电脑会缓存域名解析出来的IP,所以更新域名IP后,刷新DNS解析缓存,否则解析出来的还是之前的IP地址)。
- 输入“nslookup home.example.cn”获取解析后的IP地址。
参考如图:
原文链接:https://blog.csdn.net/qq_24130227/article/details/130467375