Wie kann ich ddclient dazu bringen, mit freedns zu arbeiten?


8

Ich verwende den dynamischen DNS-Dienst unter freedns.afraid.org für meinen 12.04-Server. Ich hatte angenommen, dass die Protokolle standardisiert sein würden und dass ddclient nur funktionieren würde, aber anscheinend nicht. Ich erhalte diese Nachricht in / var / log / syslog:

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

Ich habe versucht, die aktualisierte Version von ddclient aus der in dieser Antwort beschriebenen alternativen PPA zu verwenden , aber dann habe ich diesen Fehler festgestellt :

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

Und wenn ich versuche, dieses Paket zu installieren, erhalte ich Folgendes:

E: Unable to locate package libdigest-sha1-perl

Was mich zu diesem Fehlerbericht führt , der anscheinend keine Lösung hat. Wie gehe ich vor?



Es sieht so aus, als ob der Fehler in 3.8.2 behoben wurde. Ddclient funktioniert jetzt einwandfrei mit Freedns aus der Box.
— Jesjimher

Antworten:


11

Bis ddclient behoben ist , können Sie das gewünschte alte Modul manuell installieren:

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

ddclient --helpGeben Sie die Clientseite von DNS frei und stellen Sie Beispielkonfigurationen für ddclient bereit. Starten Sie ddclient neu, damit die Änderungen wirksam werden:

sudo service ddclient restart

Ich ziehe es vor, ddclient selbst zu hacken, danke.
— Rob Fisher

3

Ich konnte FreeDNS zum Laufen bringen, indem ich einfach diese beiden Zeilen in /usr/sbin/ddclient:

Von:

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

Zu:

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

Von:

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

Zu:

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

2

Ein Kommentar im Fehlerbericht legt nahe, dass es "einfach ist, Programme zu ändern, um Digest :: SHA anstelle von Digest :: SHA1 zu verwenden".

Die vollständigen Schritte sind also zunächst, da add-apt-repository nicht standardmäßig installiert ist:

sudo apt-get install python-software-properties

Dann wird , wie beschrieben durch Izx:

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

Dieses Repository enthält jetzt viele Pakete, aber wir wollen nur ddclient. Erstellen Sie also eine Voreinstellungsdatei wie `/etc/apt/preferences.d/nathan-prefs und bearbeiten Sie sie so, dass sie folgendermaßen aussieht:

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

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

Installieren Sie nun ddclient:

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

Werden Sie jetzt root und bearbeiten Sie / usr / sbin / ddclient. Suchen Sie nach require Digest::SHA1und ersetzen Sie es durch require Digest::SHA. Suchen Sie später nach import Digest::SHA1einigen Zeilen und ersetzen Sie sie durch import Digest::SHA.

Öffnen Sie abschließend /etc/ddclient.conf und lassen Sie es ungefähr so ​​aussehen (beachten Sie das Protokoll):

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

Die Hauptsache, über die ich nicht glücklich bin, ist das Hacken einer Datei und das Unterbrechen der Paketverwaltung von Ubuntu. Eine bessere Lösung wäre, die PPA zu reparieren.


-1

Sie können es erhalten von: libdigest-sha1-perl

Möglicherweise müssen Sie auch libio-socket-ssl-perl installieren . Überprüfen Sie Ihr Syslog


N: Paket libdigest-sha1-perl konnte nicht gefunden werden
— Konstigt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.