NAS盒子-IPV6动态域名解析外网访问

一、家里网络拓扑图

介绍一下网络布局,全屋设置同名WiFI,而路由器A和路由器B选择AP模式,是为了减少NAT转发降速,同时保持同一网段,方便所有联网的设备漫游、电视投屏、资源共享,每家的网络情况不一样,仅供参考。
内网IP:
光猫:192.168.1.1
NAS盒子:192.168.1.2
路由器A(客厅):192.168.1.3
路由器B(卧室):192.168.1.4
WiFi名称:www.zhangsan.cn

二、盒子IPV6动态解析域名

前提:
申请一个域名:zhangsan.cn(比如我的名字为张三),nas.zhangsan.cn 二级域名绑定NAS盒子,国内的域名记得备案。我家里运营商送的光猫用路由模式已封禁端口:80、443,无法使用SSL,好在支持IPV6。IPV6检测:https://ipw.cn/ipv6/ , 或者查看NAS盒子是否支持IPV6,输入命令:ifconfig

安装DDNS-GO

我申请的域名是腾讯云的,以下就以腾讯云DDNS为例。NAS盒子用Docker安装DDNS-GO,用于自动更新解析IPV6,钉钉群机器人发送更新通知,安装命令如下:

1
docker run -d --restart=always --name ddns-go --net=host -v /mnt/sda1/ddns:/root jeessy/ddns-go -l :9877 -f 600

拉取失败可以使用

1
docker run -d --restart=always --name ddns-go --net=host -v /mnt/sda1/ddns:/root ghcr.io/jeessy2/ddns-go -l :9877 -f 600

安装完,访问 http://NAS盒子IP:9877 配置一下

腾讯云DNS解析

(1)API 密钥
腾讯云登陆-DNSPod - 访问管理-API 密钥(用于DDNS-GO配置:DNS服务商填写ID和Token),可以直接访问https://console.dnspod.cn/account/token/token

(2)DNS解析
腾讯云登陆-控制台-DNSPod-DNS解析,可以直接访问https://console.dnspod.cn

域名解析检测:https://tool.dnspod.cn

上面所有操作完成后:
家里内网可以访问:http://nas.zhangsan.cn
在外网可以访问:http://nas.zhangsan.cn:81
温馨提示:
如果嫌弃带有端口号,可以通过访问一级域名http://zhangsan.cn/nas
自动跳转到 http://nas.zhangsan.cn:81
提前是一级域名 http://zhangsan.cn已经正常解析,比如我的Hexo博客是托管GitHub Page,博客里添加一个菜单nas/index.md里面,跳转代码如下:

三、外网访问家里的路由器

NAS盒子、路由器A和路由器B必须设置静态内网IP,其他设备DHCP分配地址,然后通过NAS盒子里的Nginx代理可以实现访问家里的路由器,配置如下:

路由器A:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
listen 82;
listen [::]:82;

​ location / {
client_max_body_size 1024m;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto $scheme;
proxy_redirect off;
proxy_pass http://192.168.1.3;
​ }

}

路由器B:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
listen 83;
listen [::]:83;

location / {
client_max_body_size 1024m;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto $scheme;
proxy_redirect off;
proxy_pass http://192.168.1.4;
}

}

执行以下命令,即可访问

1
2
3
ln -sf /etc/nginx/sites-{available,enabled}/nginx_router
ln -sf /etc/nginx/sites-{available,enabled}/nginx_router2
nginx -s reload

路由器A访问:http://nas.zhangsan.cn:82 –>192.168.1.3
路由器B访问:http://nas.zhangsan.cn:83 –>192.168.1.4