使用ddns-go实现家庭网络ddns域名动态解析
引言
很多家庭都会有nas设备来存放个人资料、剧集。或者小型miniPc来当服务器使用的情况,我前段时间就从某鱼搞了一台二手的N5105来当个人服务器,缺点是放在家里内网外部是无法直接访问到,当然想要实现外部访问的话,方案肯定是有的,如今实现这个需求使用较多的方案个人认为就是内网穿透和域名动态解析(ddns)了,使用内网穿透需要借助公网服务器,也就是需要花钱采购公网服务器,这个是需要投入资金成本的,而今天给大家介绍的是域名动态解析的方案,这种方案不需要投入资金成本,只需要更改家庭带宽的拨号方式为桥架模式即可,以我家使用的中国电信为例,默认使用的是路由模式,宽带安装好之后即可使用,不需要路由器拨号,是没有公网IP的,电话客服让其更改为桥接模式并开通公网IP,然后通过路由器拨号上网的方式即可获取公网IP,这样使用ddns的前提条件就满足啦。其实很多路由器都有ddns的功能,但是很多都是自带需要注册第三方服务使用它们提供的子域名的那些,我不太喜欢使用,所以打算自己部署
不是改成了桥接模式就一定会有公网IP的,本人刚开通的时候确实有公网IP,使用一段时间之后的某一天突然无法使用了。排查了好久,发现实际查询的公网IP和PPOE拨号获取的IP地址不一样,让电信排查之后,告知没有开通公网IP。也是很无语,估计是被他们偷偷的关闭掉了,让其再次开通后一切又正常了
方案实现
经过一翻资料查阅,发现ddns-go挺不错,支持的域名服务商很多,部署支持Mac、Windows、Linux系统,支持ARM、x86架构。部署方便,还支持docker。我有一台黑群晖设备放在家里的,平时在公司也有访问它的需求,正好借助群晖的docker容器的方式部署。
- 镜像地址
https://hub.docker.com/r/jeessy/ddns-go
- 部署
在镜像地址页有详细的部署方式,我选的是不使用host模式的运行方式,根据自己的需求自行选择即可
```bash docker run -d --name ddns-go --restart=always -p 9876:9876 -v /volume1/docker/ddns-go:/root jeessy/ddns-go
```
- 配置aliddns
配置aliddns也很方便,部署完成之后,在浏览器打开ddns-go管理界面进行配置。登陆时需要输入账号密码,首次输入时随意,会自动创建,后续使用这个账号密码登录
[!note]
提前登录阿里云准备好
AccessKey ID和AccessKey Secret,配置时需要用到
登录之后的界面如下图,根据自己的信息填入之后保存

- 验证
一切配置完成之后,查看阿里云的域名解析,多了一条对应的域名解析记录。解析的IP地址与我的带宽出口IP也是一致的,然后我在路由器里添加了端口映射,在外部使用telnet检查了一下端口是通的,对应的服务也能够访问到。