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.