如何让ddclient与freedns一起使用?


8

我将freedns.afraid.org上的动态DNS服务用于12.04服务器。我以为协议将是标准化的,并且ddclient会工作,但显然不会。我在/ var / log / syslog中收到此消息:

ERROR: Invalid update URL (2): unexpected status ()

我尝试使用此答案中所述的替代PPA的ddclient更新版本,但随后出现此错误:

FATAL:    Error loading the Perl module Digest::SHA1 needed for freedns update.
FATAL:     On Debian, the package libdigest-sha1-perl must be installed.

当我尝试安装该软件包时,得到以下信息:

E: Unable to locate package libdigest-sha1-perl

这导致我找到此错误报告,但显然没有解决方案。如何进行?



看起来该错误已在3.8.2中修复,现在ddclient与freedns开箱即可正常工作。
jesjimher

Answers:


11

修复 ddclient之前,您可以手动安装所需的旧模块:

sudo apt-get install cpanminus
cpanm --sudo Digest::SHA1

免费提供DNS的客户端页面,ddclient --help提供示例ddclient配置。重新启动ddclient以使更改生效:

sudo service ddclient restart

我喜欢这个,而不是黑客ddclient本身,谢谢。
罗伯·费舍尔

3

我只需在以下两行中进行编辑即可使FreeDNS正常工作/usr/sbin/ddclient

从:

my $sha1_loaded = eval {require Digest::SHA1};

至:

my $sha1_loaded = eval {require Digest::SHA};

从:

import  Digest::SHA1 (qw/sha1_hex/);

至:

import Digest::SHA (qw/sha1_hex/);

2

一个注释中的bug报告表明,它是“容易改变程序使用摘要:: SHA而不是摘要:: SHA1”。

因此,首先要进行完整的步骤,因为默认情况下未安装add-apt-repository:

sudo apt-get install python-software-properties

然后,如说明由izx:

sudo apt-add-repository ppa:nathan-renniewaldock/ppa

现在,此存储库包含许多软件包,但我们只需要ddclient。因此,创建一个首选项文件,例如`/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

现在安装ddclient:

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

现在,成为root并编辑/ usr / sbin / ddclient。寻找require Digest::SHA1并替换为require Digest::SHA。然后import Digest::SHA1稍后查找几行,并替换为import Digest::SHA

最后,打开/etc/ddclient.conf,使其看起来像这样(注意协议):

daemon=3600
protocol=freedns
use=if, if=eth0
ssl=yes
use=web, web=myip.dnsomatic.com
server=freedns.afraid.org
login=username
password='password'
mydomain.example.com

我不满意的主要事情是入侵文件并破坏Ubuntu的软件包管理。更好的解决方案是固定PPA。


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.