2008-07-29

流氓的中国电信害我浪费几个小时

申请了个3322免费动态域名,然后测试。

一般的处理方法是写个脚本放在 /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

没有评论: