Jak mogę zmusić ddclient do pracy z freedns?

8

Korzystam z usługi dynamicznego DNS na stronie freedns.afraid.org na moim serwerze 12.04. Zakładałem, że protokoły zostaną znormalizowane i że ddclient będzie po prostu działał, ale najwyraźniej nie. Otrzymuję ten komunikat w katalogu / var / log / syslog:

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

Próbowałem użyć zaktualizowanej wersji ddclient z alternatywnego PPA opisanego w tej odpowiedzi , ale potem napotkałem ten błąd:

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

A kiedy próbuję zainstalować ten pakiet, otrzymuję to:

E: Unable to locate package libdigest-sha1-perl

Co prowadzi mnie do tego raportu o błędach , który najwyraźniej nie ma rozwiązania. Jak kontynuować?

Rob Fisher
źródło
Wygląda na to, że błąd został naprawiony w 3.8.2 , ddclient działa teraz poprawnie z freedns po wyjęciu z pudełka.
jesjimher

Odpowiedzi:

11

Dopóki ddclient nie zostanie naprawiony , możesz ręcznie zainstalować stary moduł, który chce:

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

Bezpłatna strona klientów DNS i ddclient --helppodaj przykładowe konfiguracje ddclient. Zrestartuj ddclient, aby zmiany odniosły skutek:

sudo service ddclient restart
ændrük
źródło
Wolę to niż hakowanie samego ddclient, dzięki.
Rob Fisher
3

Udało mi się uruchomić FreeDNS, po prostu edytując te dwa wiersze w /usr/sbin/ddclient:

Od:

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

Do:

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

Od:

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

Do:

import Digest::SHA (qw/sha1_hex/);
matrman
źródło
2

Komentarz do raportu o błędzie sugeruje, że jest to „łatwe do zmiany programów używać Digest :: SHA zamiast Digest :: SHA1”.

Tak więc pełne kroki są po pierwsze, ponieważ repozytorium add-apt nie jest domyślnie instalowane:

sudo apt-get install python-software-properties

Następnie, jak opisano przez izx:

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

Teraz to repozytorium zawiera wiele pakietów, ale chcemy tylko ddclient. Stwórz plik preferencji, taki jak `/etc/apt/preferences.d/nathan-prefs i edytuj go, aby wyglądał następująco:

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

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

Teraz zainstaluj ddclient:

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

Teraz zostań rootem i edytuj / usr / sbin / ddclient. Poszukaj require Digest::SHA1i zamień na require Digest::SHA. Następnie poszukaj import Digest::SHA1kilku linii później i zamień na import Digest::SHA.

Na koniec otwórz plik /etc/ddclient.conf i spraw, aby wyglądał mniej więcej tak (zwróć uwagę na protokół):

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

Najważniejsze, że nie jestem zadowolony z włamania się do pliku i złamania zarządzania pakietami Ubuntu. Lepszym rozwiązaniem byłoby naprawienie PPA.

Rob Fisher
źródło
-1

Możesz go pobrać z: libdigest-sha1-perl

Może być konieczne zainstalowanie libio-socket-ssl-perl . Sprawdź swój syslog

użytkownik211708
źródło
N: Nie można znaleźć pakietu libdigest-sha1-perl
Konstigt