部署ddns-go并配置推送,轻松访问家里nas

现在不少童鞋家里都入手了nas,但是想出门在外也能实时访问家里的设备,要么通过内网穿透,比如nas自带的服务或者frp这些做到从外网访问,要么就是通过公网ipv4/ipv6直接连接家里设备,目前家庭宽带都有公网(ipv6也是公网),显然用公网的方式更加方便且速度更快,但是家宽都是动态ip,这里就用docker部署ddns-go服务来解决访问家里设备问题。

关于公网、ddns、内网穿透关系看往期文章《科普:公网、ddns与内网穿透(二)》,这里不再赘述。

一、安装docker

这一步看往期文章《如何搭建属于自己的chatgpt》,这里不再赘述。

二、部署ddns-go

docker命令:

docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go

注意:如有需要请自行更换文件映射地址/opt/ddns-go,同时为了方便使用,这里网络为host模式,请确保没有其他服务占用9876端口,或者自行更换为其他模式。

威联通docker:

威联通docker详细教程请看往期文章《简单搭建一个测速网站(docker详细教程一)》,这里只提醒几点,一个是网络选择host模式,如果端口有冲突就选择其他模式;第二个是注意映射文件夹。

三、配置ddns-go

浏览器打开ip:9876,就可以进入到配置界面。在dns服务商那里选择自己对应服务商即可,然后点击蓝色字体跳转到对应厂商创建密钥等详细,这里我以dnspod为例。

登录dnspod后点击左上角创建密钥,再填入密钥名称。

点击确定之后即可弹出id,token等信息,此信息只会显示一次,请妥善保管。

返回到ddns-go配置界面,填入id以及token。

之后填入自己的域名。

请注意,如果家里没有公网ipv4只有ipv6,请不要启用ipv4,否则在特殊情况下会导致无法连接。

在docker网络模式为host情况下,ipv4除非是在路由器上直接部署,这时候可以选择通过网卡获取ip,否则一律通过接口获取;ipv6选通过网卡获取;如果是非host模式,均选择通过接口获取。

提醒:ipv6与ipv4不能互通,如果公司只有v4且家里仅有v6,这时候是无法访问,如果有这种需求请考虑额外搭建隧道或者使用内网穿透,也可以利用cf等做到v4和v6互访,具体教程过段时间再出。

(可选)三、配置推送

有时候想要及时掌握家里ip变动情况,这时候就可以配置相关推送,当ip变动之后可以及时知晓,在特殊情况比如dns记录没有生效等情况下就可以直接用ip连接设备。

这里我利用server酱做微信推送,server酱免费是每日5条推送,也足够了,ddns-go也支持其他推送方式,参考官方文档即可。
官方文档:https://github.com/jeessy2/ddns-go#webhook

如果没有server酱账号请自行前往https://sct.ftqq.com/注册,登录之后通道那里选择放糖服务号(其他推送方式也可以,服务号比较方便点),之后保存,保存后也可以测试一下。

转到Key&API设置,复制自己的key。

转到ddns-go Webhook配置,填入以下url,请自行更换自己刚刚复制的key。

https://sctapi.ftqq.com/[SendKey].send?title=你的公网IP变了&desp=主人IPv4变了#{ipv4Addr} , #{ipv6Addr},域名更新结果:#{ipv4Result}, #{ipv6Result}

四、保存配置并验证ddns

完成上述步骤后点击save保存。此时即可查看日志确认配置是否生效,如果配置了推送也会收到相应推送。

登录域名服务商也可以发现ddns已经生效。

ddns会每隔一段时间检测ip是否有变动,此时就可以安心使用域名访问家里设备了。

THE END