动态域名

出自Linux Wiki

在2008年12月2日 (二) 12:53由Chenxing (讨论 | 贡献)所做的修订版本

使用动态域名指向可以使一个域名固定地指向一台IP可能变化的电脑。拿个人电脑架服务器的用户多使用动态域名。

希网( www.3322.org )提供免费的动态域名,请先在希网注册帐户并建立动态域名。

更新域名指向

在Linux中,可以使用wget更新域名指向,你需要在网址中提供用户名密码域名,也可以提供指向的IP。

下面的bash脚本可以更新域名指向。[1][2]

#!/bin/bash
USERNAME="你的用户名"
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:$PASSWORD@members.3322.org/dyndns/update?system=dyndns&hostname=$DOMAINNAME&myip=$MYIP"
else
    wget -q -O- "http://$USERNAME:$PASSWORD@members.3322.org/dyndns/update?system=dyndns&hostname=$DOMAINNAME"
fi

如果不提供IP,希网将自动判断您的IP,有时可能判断错误,比如如果你用教育网直通车,请将SetIP设为True。如果将SetIP设置为true,则不能以普通用户运行该脚本。请按实际情况设置SetIP变量的值。

启动时自动更新

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

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

# chmod +x /usr/bin/updateDNS

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

updateDNS

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

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

参考资料

  1. http://www.cyberciti.biz/tips/read-unixlinux-system-ip-address-in-a-shell-script.html
  2. 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/
个人工具
简体繁体转换