环境
操作系统:Debian[jessie]
DNS服务器:powerdns
DDNS外挂:pboehm/ddns[https://github.com/pboehm/ddns.git]
配置go环境
1.下载go最新版本并解压至/opt
2.配置环境变量
vi /etc/profile
新增
export GOROOT=/opt/go
export GOPATH=/opt/go/root
export PATH=$PATH:$GOROOT/bin
3.安装ddns
$ go get github.com/pboehm/ddns
$ ls $GOPATH/bin/ddns # the displayed path will be used later
/opt/go/root/bin/ddns
安装DNS服务器powerdns
#apt-get install redis-server pdns-server pdns-backend-pipe
配置DNS
#vim /etc/powerdns/pdns.d/pipe.conf
配置如下
launch=pipe
pipebackend-abi-version=1
pipe-command=/opt/go/root/bin/ddns --soa_fqdn=dns.example.com --domain=sub.example.com backend
soa_fqdn:自建DNS服务器地址
domain :ddns的子域名
配置ddns前端
# apt-get install nginx supervisor
新增配置
$ sudo vim /etc/supervisor/conf.d/ddns.conf
$ cat /etc/supervisor/conf.d/ddns.conf
[program:ddns]
command = /opt/go/root/bin/ddns --domain=sub.example.com --listen=127.0.0.1:10080 web
stdout_logfile=/var/log/supervisor/ddns.log
stderr_logfile=/var/log/supervisor/ddns.log
autostart = True
autorestart = True
redirect_stderr = True
startsecs=10
配置nginx
$ sudo vim /etc/nginx/sites-enabled/ddns
$ cat /etc/nginx/sites-enabled/ddns
server {
listen 公网ip:10080;
server_name ddns.example.com;
location / {
proxy_pass http://127.0.0.1:10080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
proxy_connect_timeout 300;
}
}
启动服务
#service pdns start
#service supervisor start
#service nginx start
配置域名解析[以万网为例]
1.自定义DNS服务器
2.选择自定义DNS服务器,并进行如下配置[此处一经定义不可修改]

3.新增 DNS服务器对应的A记录 例如 dns.example.com
4.新增 NS记录,指定子域名由dns.example.com 解析,如下图

其中 dns.example.com 对应IP为自己服务器ip