0%

Homelib (5): DDNS 动态域名解析

由于家庭的电信公网IP是动态的,每次重新拨号后,IP地址都会发生变化,所以为了能够顺利的打从外网访问家里或VPN连接到家里,我们的选择之一就是 DDNS。

DDNS

DDNS (Dynamic DNS), 也就是动态域名解析。 其实就是通过一些方式动态的去更新你的域名解析。一般 DDNS 软件安装在你内网机器上,可以通过外部获取或直接通过网关获取你的公网IP,然后通过 DNS 服务商的 API 更新域名解析,从而实现动态域名解析。

DDNS 的软件有很多,我用的是 godns, 用 Go 实现的很轻量,支持主流的 DNS 服务商,而且支持 IP 变动后发送邮件通知。

搭建

搭建方式很简单,我直接用 docker-compose 启动, docker-compose.yml 如下:

1
2
3
4
5
6
7
8
9
10
11
12
version: '3'
services:
godns:
image: razeencheng/godns:v2.4.0
container_name: godns
volumes:
- ${PWD}/config.json:/config.json
restart: "always"
logging:
options:
max-size: "500m"
max-file: "2"

其中,配置文件config.json如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"provider": "DNSPod",
"login_token": "xxxx,xxxx",
"domains": [
{
"domain_name": "razeen.cn",
"sub_domains": ["home"]
}
],
"ip_url": "http://myip.razeen.cn",
"ip_type": "IPv4",
"interval": 300,
"user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36",
"notify": {
"enabled": true,
"smtp_server": "smtp.exmail.qq.com",
"smtp_username": "xxxxx",
"smtp_password": "xxxxx",
"smtp_port": 587,
"send_to": "xxxx"
}
}

在这个配置中:

  • provider 就是 DNS服务商, 不同的DNS服务商设置可以看官方文档
  • domains 是我们需要动态解析的域名;
  • ip_url 是通过访问该网址获取真实IP, 这里我自己搭建了一个;
  • notify 是通知的SMTP设置,我用的 qq 企业邮箱。

这样 DDNS 我们搭建完成啦,接下来可以愉快的折腾其他服务了。

如果觉得文章对您有帮助,点两下右边广告将是对我莫大的鼓励,非常感谢!

欢迎关注我的其它发布渠道