--- title: NAS使用DDNS tags: - 网络 - NAS技术 categories: NAS技术 abbrlink: 28082 date: 2023-08-22 11:02:22 keywords: description: --- >群晖自带的DDNS无法使用泛域名,我在NAS使用过程中需要把域名的所有子域名都通过DDNS指向本机,所以在这里采用装第三方DDNS服务的方法来使用DDNS。 DDNS其实就是动态的调整DNS服务器中的A记录,实现的前提就是域名服务商提供API来修改域名的A记录,我们在需要使用DDNS的地方通过脚本来获取可能动态会变动的公网IP,然后通过API告诉域名服务商修改A记录。 因此,实现DDNS需要做两件事:第一,获取DNSPod的API Token;第二,在本地用程序获取公网IP地址并使用DNSPod API更新A记录。 # 获取DNSPod Token 在DNSPOD的控制台中,如下图所示点击API密钥中。 点击DNSPod Token并创建密钥,记录下ID和Token。 # 动态更新DNS 我在威联通上通过docker-compose来实现DDNS。 在nas上合适的位置创建目录,并创建如下文件。 其中docker-compose文件如下: ``` --- version: "3" services: ddns-go: image: jeessy/ddns-go container_name: ddns-go environment: - PUID=1000 - PGID=1000 - TZ=Asia/Shanghai network_mode: "host" restart: unless-stopped ``` 在ddns-go目录下执行命令docker-compose up -d命令来启动ddns-go,使用docker-compose logs -f来查看启动日志,如果启动没有问题,那么就可以使用浏览器访问http://192.168.31.206:9876来访问。ddns-go的配置界面如下:DNS服务商选择Dnspod;ID和Token设置为上面记录的值;Domains设置为*.dreamlyn.cn。 啰嗦一句,最开始的时候,我是将DDNS的域名设置为home.dreamlyn.cn,并将*.dreamlyn.cn的cname设置为home.dreamlyn.cn。但这样设置的话,后面在使用traefik进行DNS Challenge时会存在问题,不得已只好将DDNS直接设置为*.dreamlyn.cn。 在其他配置中,设置登录用户名、密码并保存。 查看右侧的日志并登录DNSPod的后台看*.dreamlyn.cn的A记录是否变更,如变更,则说明DDNS安装成功。 至此,我们便打通了从 外网到NAS的线路,也就是说访问*.dreamlyn.cn:880时会映射到NAS的80端口,访问*.dreamlyn.cn:8443则会映射到NAS的443端口。