一般的处理方法是写个脚本放在 /etc/ppp/if-up.d下,当 pppoe 拨上后,会自动执行脚本去更新动态域名。可是不论怎么试,DNS解析就是不更新。
原本是这样写的
wget -O - "http://username:password@www.3322.org/dyndns/update?system=dyndns&hostname=yourdomain.3322.org" > /dev/null 2>&1
于是把输出写到一个文件,一看,把我气死了。内容是
<html>
<META HTTP-EQUIV="Refresh" Content="0; URL=http://welcome.sh.vnet.cn/portal/jp/index.jsp?url=http%3A//www.3322.org/dyndns/update%3Fsystem%3Ddyndns%26hostname%3Dyourdomain.3322.org">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<head>
<title>Redirect</title>
</head>
<body>
If you are not redirected, <a href="http://welcome.sh.vnet.cn/portal/jp/index.jsp?url=http%3A//www.3322.org/dyndns/update%3Fsystem%3Ddyndns%26hostname%3Dyourdomain.3322.org">click here</a>
</body>
</html>
这才记起电信这个老流氓会第一次访问重定向到互联星空,害我调试了老半天。
解决方法很简单,在wget 3322前,先 wget 一次其它的网站。代码如下
cat /etc/ppp/ip-up.d/01-3322
#!/bin/sh
LOGFILE="/tmp/3322.org"
wget -O - "http://fuck.chinatelecom.com.cn" >/dev/null
sleep 30
if ! wget -O - "http://username:password@www.3322.org/dyndns/update?system=dyndns&hostname=yourdomain.3322.org" > /dev/null 2>&1
then
echo `date`" Retry in 5 mins" >> "$LOGFILE"
sleep 1m && /etc/ppp/ip-up.d/01-3322 &
else
echo `date`" Done!" > "$LOGFILE"
fi

没有评论:
发表评论