动态域名 ddns

动态域名

此页由Linux Wiki用户Chenxing于2012年6月3日 (星期日) 18:57的最后更改。

用个人电脑架设服务器或想远程控制电脑时,常需要一个固定的域名,指向一台IP可能变化的电脑,即动态域名。

目前提供免费动态域名的有国内的公云(原3322)、和No-IP等。

更新域名指向

在Linux中,一般可以使用服务提供商提供的工具更新域名的指向。如No-IP提供的更新工具,在Archlinux中可以通过软件包noip安装。

另外,对于很多服务而言,使用wget一个包含用户名、密码和域名的URL,也可以更新动态域名的指向(A记录)。[1][2]

下面的是一个样例Bash脚本,适用于3322[3][4]:

#!/bin/bashUSERNAME="你的用户名"PASSWORD="你的密码"DOMAINNAME="你的完整的动态域名"SetIP=false # 为true时用ifconfig返回的IP设定DNS,否则由服务器自己判断 if $SetIP ; then # 下面从ifconfig获取IP,如果需要,可以手动更改 MYIP=`LANG=C ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'| head -n1` wget -q -O- "http://$USERNAME:[email protected]/dyndns/update?system=dyndns&hostname=$DOMAINNAME&myip=$MYIP"else wget -q -O- "http://$USERNAME:[email protected]/dyndns/update?system=dyndns&hostname=$DOMAINNAME"fi

如果不提供IP,服务器可以自动判断请求的来源IP。但有时(如使用VPN时)请求来源IP并非电脑的真实IP,此时要将SetIP设为True,并使用脚本获得电脑目前的IP。

启动时自动更新

您需要切换到root用户或使用sudo进行下面的操作。

将上面的脚本存入适当的文件夹,如/usr/bin/updateDNS,并增加可执行权限:

# chmod +x /usr/bin/updateDNS

修改/etc/rc.local,在exit 0前面加入一行:

updateDNS

这样系统每次启动时就会更新域名的指向了。

更合理的,updateDNS应在网络连接建立自动运行,而不是在系统启动时,具体的设置方法请参照网络连接建立后自动运行程序。

参考资料

↑ No-IP的API文档

↑ 小辣椒(3322)动态域名更新API

↑ http://www.cyberciti.biz/tips/read-unixlinux-system-ip-address-in-a-shell-script.html

↑ http://yaoms.blog.ubuntu.org.cn/2008/04/10/3322%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E7%BB%91%E5%AE%9A%EF%BC%88wget%E7%89%88%EF%BC%89/

1个分类: 服务器配置

本文对您有帮助?分享给更多朋友!


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn