为什么在尝试更新动态DNS时ddclient给我一个“无效IP”错误?


8

我很难ddclient(用我当前的IP地址更新OpenDNS)正常工作。我让它作为守护程序运行,但是它从未成功更新位于的IP地址openDNS

为了进行故障排除,我ddclient从命令行运行如下。

(在这些示例中,出于安全原因,方括号[]中的值是实际值的替代项)

我的/etc/ddclient.conf包含:

use=web, web=checkip.dyndns.org/, web-skip='IP Address'
server=updates.opendns.com
protocol=dyndns2
login=[my login]
password=[my password]
Home

当我跑步时:

sudo ddclient -daemon=0 -debug -verbose -noquiet

我得到:

WARNING:  file /var/cache/ddclient/ddclient.cache, line 3: Invalid Value for keyword 'ip' = ''
...
WARNING:  skipping update of Home from <nothing> to [my real ip].
WARNING:   last updated <never> but last attempt on Tue Oct  4 08:38:32 2011 failed.

如果我rm缓存文件ddclient确实可以工作一次,但是随后将失败。


OP,您还在寻找答案吗?如果是这样,您可能需要重新发布您的问题,因为这已被标记为关闭。=)
Ringtail'3

仍未找到使它起作用的方法
SpashHit 2012年

请考虑编辑您的问题以提供其他信息。这可能会将您的问题移至顶部并显示答案。
Ringtail'3

我还能添加什么?
SpashHit 2012年

您是否尝试过客户支持?sourceforge.net/projects/ddclient/support
Ringtail 2012年

Answers:


4

已知错误-已在上游修复-从PPA获取最新版本

这是/来自一个已知的“错误”,这是由动态DNS提供程序错误地使用dyndns2协议并将格式错误的响应发送到引起的ddclient

该问题早已在ddclient中得到了解决(基于trac中链接的补丁之一),但是Ubuntu的ddclient很古老(从上游继承),甚至无法手动进行补丁。(Ubuntu的修订版为106/2009年1月,而最新的版本为r130 / 2011年11月)。

解:

  1. 将此PPA添加到sudo apt-add-repository ppa:nathan-renniewaldock/ppa
  2. sudo apt-get update && sudo apt-get install ddclient (如有必要,将升级)

PPA的最新版本为10.04、11.10和12.04。


出于好奇,这里是补丁/越野车位:

        #错误#10:某些dyndns提供程序未返回IP,因此
        #我们不能使用返回的IP
        my($ status,$ returnedip)= split / /,lc $ line;
        $ ip = $ returnedip if(不是$ ip);

4

您需要来自ppa:nathan-renniewaldock / ppa的较新的ddclient程序包,但是请注意,如果您要使ddclient正常工作,则此PPA可能包含许多其他您可能不希望使用的程序包。使用以下步骤仅升级ddclient。

sudo apt-get install python-software-properties
sudo apt-add-repository ppa:nathan-renniewaldock/ppa

现在,以根用户身份创建文件/etc/apt/preferences.d/nathan-prefs并对其进行编辑,使其看起来像这样(包括重要的空白行):

Package: *
Pin: release o=LP-PPA-nathan-renniewaldock
Pin-Priority: 400

Package: ddclient
Pin: release o=LP-PPA-nathan-renniewaldock
Pin-Priority: 500

这告诉apt-get忽略PPA而非ddclient的软件包。因此,现在可以安全地进行安装了:

sudo apt-get update && sudo apt-get install ddclient

或者,如果您已经安装了它,请执行以下操作:

sudo apt-get upgrade

只需检查仅ddclient将要升级即可。


值得注意的是,此信息不再有效。如果您尝试按照ubuntu 12.04中的这些说明进行操作,则会出现以下错误:“致命:加载freedns更新所需的Perl模块Digest :: SHA1时出错”。要解决此错误,您需要ddclient 3.8.2,但是此PPA仅具有3.8.1。
弗兰克斯特

0

将@的更新从跳过到71.422.000.000。

在大多数情况下,设置
ddclient后会收到此警告警告:文件/var/cache/ddclient/ddclient.cache,第3行:关键字'ip'=''的无效值</ p>
是由于输入错误或很小ddclient.conf文件中的tweek。我需要停下来,并逐行对照我的域名提供商示例进行检查。

我使用NameCheap是因为我喜欢他们的密码系统的安全性,该密码系统分别与每个域绑定,可以自动生成并且可以快速,轻松地进行更改。

我最新的问题是NameCheap并未在其知识库示例中显示,但我记得以前必须做的事情。那就是我必须在要更新的主机名(域名之前的名称)之间加上逗号。因此,以下是当前可与我的域名提供商一起使用的示例。

daemon = 3600
ssl = yes
协议= namecheap
use = web,web = dynamicdns.park-your-domain.com / getip
server = dynamicdns.park-your-domain.com
login = yourdomainname.com
password = 0fc0ur5ethi5i5n5t0tmypa55w0rdfoob
@,hostname1
缺少此名称小小的逗号引发错误


我不知道为什么这会引起反对。如果您搜索namecheep问题,则会弹出一个问题。您的解决方案完美地帮助了我。谢谢!
nbroeking
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.