Come posso ottenere ddclient per lavorare con Freedns?


8

Uso il servizio DNS dinamico su freedns.afraid.org per il mio server 12.04. Avevo supposto che i protocolli sarebbero stati standardizzati e che ddclient avrebbe funzionato, ma apparentemente no. Ricevo questo messaggio in / var / log / syslog:

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

Ho provato a utilizzare la versione aggiornata di ddclient dall'alternativa PPA descritta in questa risposta , ma poi ho riscontrato questo errore:

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

E quando provo ad installare quel pacchetto, ottengo questo:

E: Unable to locate package libdigest-sha1-perl

Il che mi porta a questa segnalazione di bug , che apparentemente non ha soluzione. Come procedere?



Sembra che il bug sia stato corretto in 3.8.2 , ddclient ora funziona bene con freedns fuori dalla scatola.
jesjimher,

Risposte:


11

Fino a quando ddclient è stato risolto , è possibile installare manualmente il vecchio modulo desiderato:

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

Pagina client DNS gratuita e ddclient --helpfornire configurazioni ddclient di esempio. Riavvia ddclient per rendere effettive le modifiche:

sudo service ddclient restart

Preferisco questo a hackerare ddclient stesso, grazie.
Rob Fisher,

3

Sono stato in grado di far funzionare FreeDNS semplicemente modificando queste due righe in /usr/sbin/ddclient:

A partire dal:

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

Per:

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

A partire dal:

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

Per:

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

2

Un commento nella segnalazione di bug suggerisce che è "facile cambiare i programmi per usare Digest :: SHA invece di Digest :: SHA1".

Quindi, i passaggi completi sono innanzitutto perché add-apt-repository non è installato per impostazione predefinita:

sudo apt-get install python-software-properties

Quindi, come descritto da izx:

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

Ora, questo repository contiene molti pacchetti, ma vogliamo solo ddclient. Quindi crea un file delle preferenze come `/etc/apt/preferences.d/nathan-prefs e modificalo in questo modo:

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

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

Ora installa ddclient:

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

Ora diventa root e modifica / usr / sbin / ddclient. Cerca require Digest::SHA1e sostituiscilo con require Digest::SHA. Quindi cerca import Digest::SHA1qualche riga dopo e sostituiscilo con import Digest::SHA.

Infine, apri /etc/ddclient.conf e rendilo simile a questo (nota il protocollo):

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

La cosa principale di cui non sono contento è l'hacking di un file e la rottura della gestione dei pacchetti di Ubuntu. Una soluzione migliore sarebbe quella di riparare il PPA.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.