过年前,从电信携号转网来到了移动。之前电信是有公网ipv4分配的,但是移动没有公网ipv4,只有公网ipv6地址。那么家里的nas如何实现外网访问呢?经过这几天的学习,总结经验分享一下。基本思路是购买域名——动态域名解析——实现外网访问。
首先确定一下nas主机是否已经获取公网ipv6地址打开浏览器,输入ipw.cn。如果出现2409开头的即为公网ipv6地址。移动宽带的ipv6是默认开通的。
注:fe80 开头为局域网;240e 开头为电信;2408 开头为联通;2409 开头为移动/铁通;
本例nas是ubuntu系统,打开终端输入ifconfig获取ip信息。如果ipv6地址与上述地址一致,那么可以确定本机的ipv6地址是公网地址。
有了公网的ipv6地址,理论上来说就有了世界上具有唯一性的可访问地址。通过另一台具有ipv6地址的设备就可以直接建立连接。但是要注意如果另一台设备只有ipv4地址,那是无法直接建立连接的,因为ipv4和ipv6是分属不同的网络。
获取服务器的ipv6地址后,打开浏览器输入 http://[ipv6地址]:端口号 就可以直接访问。但是ipv6的地址非常长,而且这个地址也是经常变动的。所以为了方便访问,最简单的办法就是申请一个域名,通过动态域名解析(ddns)将经常变动的ipv6地址自动绑定到一个不变的域名上,这样后面使用起来就方便了。
购买域名本例是通过阿里云购买的域名,最便宜的6元/年。我使用域名只是为了固定访问地址,所以能用就行,当然是越便宜越好。阿里云域名购买地址:
https://wanwang.aliyun.com/domain?
购买域名非常方便,注意购买前账户需要实名认证,需要上传身份证照片,后台审核通过后就行,我这边等了大概10分钟就通过了。
域名解析域名购买成功后,需要做域名解析。就是告诉域名服务器,你的域名要和哪个ip地址绑定?
增加2条解析记录,一条是www,另一条是@。ip地址的话复制自己nas主机的ipv6地址就行。注意记录类型是AAAA即表示解析的是ipv6地址。域名解析生效时间大概是10分钟,稍后即可测试。
前面我说过即便是公网的ipv6地址也是不断变动的。所以下一步要做ddns动态域名解析。目的是当nas主机的ipv6地址变动时自动更新到阿里云的域名解析服务器,免去手动更新的问题。
ddns动态域名解析准备工作:先获取阿里云账户的key,后面会用到。方法是:点击自己账户头像,点击AccessKey管理,根据提示就能获取key。
本例操作系统是ubuntu,我通过安装ddns-go实现自动域名解析。ddns-go是一款简单好用的DDNS工具。可以自动更新域名解析到公网IP(支持阿里云、腾讯云dnspod、Cloudflare、华为云)。支持ipv4和ipv6。参考以下链接,有详细说明和教程。
https://gitee.com/pjworry/ddns-go
最简单的办法就是通过docker安装ddns-go,命令如下。
sudo docker run -d --name ddns-go --restart=always --net=host jeessy/ddns-go安装完毕,打开浏览器输入127.0.0.1:9876即可打开配置页面。配置非常简单。
第一步:输入刚才获取的阿里云key。
第二步:在ipv6栏输入自己购买的域名。注意分两行填写,一行是根域名,另一行是www:根域名。保存即可!
由于域名解析大概需要10分钟的时间才会生效,等域名解析生效了,可以用手机开流量来访问nas做测试(手机用流量时会自动配置ipv6地址)。如果可以访问了,那么配置已经成功!
总结电信宽带可以提供公网ipv4(默认不开通,但是可申请),移动宽带不提供(申请也没用,就是没有)。各大运营商基本都提供公网ipv6地址,电信默认不开通(可申请),移动默认开通。fe80 开头为局域网;240e 开头为电信;2408 开头为联通;2409 开头为移动/铁通。浏览器输入[公网ipv6地址]:端口号,即可访问nas,前提是客户端也是ipv6。ipv4与ipv6分属不同网络,不能直接互联(特殊方法不在这里讨论)。通过购买域名(需实名认证)、域名解析、配置动态域名解析,实现外网域名访问。由于公司电脑无ipv6,即便有了域名依然无法访问家里的nas。目前只能使用内网穿透工具zerotier,但是因为跨网络服务商(之前家里和公司都是电信,并且都有公网ipv4),打洞难度增加,一旦连接成功速度还是可以的。