web-dev-qa-db-fra.com

Comment puis-je obliger ddclient à travailler avec freedns?

J'utilise le service DNS dynamique de freedns.afraid.org pour mon serveur 12.04. J'avais supposé que les protocoles seraient normalisés et que le client serait simplement fonctionnel, mais apparemment pas. Je reçois ce message dans/var/log/syslog:

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

J'ai essayé d'utiliser la version mise à jour de ddclient à partir du PPA alternatif décrit dans cette réponse , mais j'ai alors rencontré cette erreur:

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

Et quand j'essaye d'installer ce paquet, j'obtiens ceci:

E: Unable to locate package libdigest-sha1-Perl

Ce qui m'amène à ce rapport de bogue , qui n'a apparemment pas de solution. La façon de procéder?

8
Rob Fisher

Jusqu'à ce que ddclient soit corrigé , vous pouvez installer manuellement l'ancien module souhaité:

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

La page des clients de Free DNS et ddclient --help fournissent des exemples de configuration de client. Redémarrez ddclient pour que les modifications prennent effet:

Sudo service ddclient restart
11
ændrük

J'ai réussi à faire fonctionner FreeDNS simplement en modifiant ces deux lignes dans /usr/sbin/ddclient:

De:

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

À:

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

De:

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

À:

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

Un commentaire dans le rapport de bogue suggère qu'il est "facile de changer de programme pour utiliser Digest :: SHA au lieu de Digest :: SHA1".

Donc, les étapes complètes sont d'abord parce qu'add-apt-repository n'est pas installé par défaut:

Sudo apt-get install python-software-properties

Puis, comme décrit par izx:

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

Maintenant, ce référentiel contient de nombreux paquets, mais nous ne voulons que ddclient. Créez donc un fichier de préférences tel que `/etc/apt/preferences.d/nathan-prefs et éditez-le pour qu'il ressemble à ceci:

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

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

Maintenant, installez ddclient:

Sudo apt-get update && Sudo apt-get install ddclient

Maintenant, devenez root et éditez/usr/sbin/ddclient. Recherchez require Digest::SHA1 et remplacez-le par require Digest::SHA. Recherchez ensuite import Digest::SHA1 quelques lignes plus tard et remplacez-le par import Digest::SHA.

Enfin, ouvrez /etc/ddclient.conf et donnez-lui l’apparence suivante (notez le protocole):

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

Le principal problème qui me déplaît est le piratage d’un fichier et la rupture de la gestion des paquets d’Ubuntu. Une meilleure solution serait de réparer le CAE.

2
Rob Fisher