我有一个要使用 ddclient 更新的子域。我将 ddclient 配置为从 dyndns 获取 IP,但它没有更新 namecheap 上的子域。他们说使用 yourdomain.com 作为登录名而不是我的实际域。
有没有人能够使用 ddclient 更新 namecheap DNS?
我正在使用 ddclient 3.7.3 运行 CentOS 6.2。
当我运行 ddclient 时,我得到以下信息。
CONNECT: checkip.dyndns.org
CONNECTED: using HTTP
SENDING: GET / HTTP/1.0
SENDING: Host: checkip.dyndns.org
SENDING: User-Agent: ddclient/3.7.3
SENDING: Connection: close
SENDING:
RECEIVE: HTTP/1.1 200 OK
RECEIVE: Content-Type: text/html
RECEIVE: Server: DynDNS-CheckIP/1.0
RECEIVE: Connection: close
RECEIVE: Cache-Control: no-cache
RECEIVE: Pragma: no-cache
RECEIVE: Content-Length: 106
RECEIVE:
RECEIVE: <html><head><title>Current IP Check</title></head><body>Current IP Address: IPADD</body></html>
Use of uninitialized value in string ne at /usr/sbin/ddclient line 1998.
WARNING: skipping update of lf4bot from <nothing> to IPADD
WARNING: last updated <never> but last attempt on Fri Jun 15 22:46:21 2012 failed.
WARNING: Wait at least 5 minutes between update attempts.
ddclient.conf 文件
daemon=300 # check every 300 seconds
syslog=yes # log update msgs to syslog
mail=root # mail all msgs to root
mail-failure=root # mail failed update msgs to root
pid=/var/run/ddclient.pid # record PID in file.
ssl=yes # use ssl-support. Works with
use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address
protocol=namecheap \
server=dynamicdns.park-your-domain.com \
login=yourdomain.com \
password=PASSWORD \
lf4bot
我刚刚经历了这个过程,想记录一些让我绊倒的问题。
首先,这是为 namecheap 配置 ddns 的规范参考:http: //www.namecheap.com/support/knowledgebase/article.aspx/583/11/how-to-configure-ddclient
如果您不想依赖外部网络服务来查找您的 IP(像我一样),事情会稍微复杂一些。ddclient 有一个工具可以登录你的路由器并从那里获取你的 IP 地址,这应该是最有效和可靠的方法。
您需要做的第一件事是找到包含您的 IP 地址的页面。对我来说,这是
http://192.168.1.1/RST_status.htm
。确保当您在该页面上“查看源代码”时,您会看到您的 IP 地址。现在退出你的路由器,否则 ddclient 将只看到一条关于某人如何登录的错误消息。最后/etc/ddclient.conf
像这样编辑你的:为确保它有效,请运行
ddclient --debug --verbose
:您应该看到它从路由器下载的网页,以及从中抓取的 IP。您可能不想使用该
--noexec
选项进行调试,因为 ddclient 将跳过从路由器下载 html,并且不会找到任何 IP 地址。在那种情况下,您会看到DEBUG: skipped network connection
和WARNING: unable to determine IP address
,这是不好的。我在 centos 6.2 上使用 ddclient 版本 3.7.3 我不知道版本是否重要但是我最终设置我的 namecheap dyndns 的方式是这样的。我这样做是为了让其他人可以确切地看到他们应该如何将它替换为您的设置的 google.com、8cc67226fadff52f402d31505ee85d6b 和 dev。
不要在密码周围添加引号或在每行后添加逗号/反斜杠。
我在 ddclient 上遇到了同样的困难。所以我写了一个简单的 perl 模块来处理更新。我开发它的想法,就像每个人一样,你必须获取你的外部 ip,并用你的基本参数将它提供给 Namecheap。这不是必需的,因为 Namecheap 端的更新脚本会自行确定您的 IP。
所以更新调用很简单:
请注意,可以使用通配符条目来处理子域。只需在您的 Namecheap“所有主机记录”页面上将“*”定义为子域 A 记录。
如果您有兴趣,App::DDNS::Namecheap在 CPAN 上。