Como faço para que o ddclient trabalhe com freedns?


8

Eu uso o serviço DNS dinâmico em freedns.afraid.org para o meu servidor 12.04. Eu tinha assumido que os protocolos seriam padronizados e que o ddclient funcionaria, mas aparentemente não. Recebo esta mensagem em / var / log / syslog:

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

Tentei usar a versão atualizada do ddclient a partir do PPA alternativo descrito nesta resposta , mas, em seguida, encontrei este erro:

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 tento instalar esse pacote, recebo o seguinte:

E: Unable to locate package libdigest-sha1-perl

O que me leva a este relatório de bug , que aparentemente não tem solução. Como proceder?



Parece que o bug foi corrigido no 3.8.2 , o ddclient agora funciona bem com os freedns prontos para uso.
jesjimher

Respostas:


11

Até que o ddclient seja corrigido , você pode instalar manualmente o módulo antigo desejado :

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

ddclient --helpLibere a página de clientes do DNS e forneça configurações de ddclient de amostra. Reinicie o ddclient para que as alterações entrem em vigor:

sudo service ddclient restart

Eu prefiro isso a hacking ddclient em si, obrigado.
22412 Robbie Fisher

3

Consegui fazer o FreeDNS funcionar simplesmente editando essas duas linhas em /usr/sbin/ddclient:

De:

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

Para:

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

De:

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

Para:

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

2

Um comentário no relatório de bug sugere que "é fácil alterar os programas para usar o Digest :: SHA em vez do Digest :: SHA1".

Portanto, as etapas completas são, primeiro, porque o add-apt-repository não está instalado por padrão:

sudo apt-get install python-software-properties

Então, conforme descrito por izx:

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

Agora, este repositório contém muitos pacotes, mas queremos apenas o ddclient. Portanto, crie um arquivo de preferências como `/etc/apt/preferences.d/nathan-prefs e edite-o para ficar assim:

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

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

Agora instale o ddclient:

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

Agora, torne-se root e edite / usr / sbin / ddclient. Procure require Digest::SHA1e substitua-o por require Digest::SHA. Em seguida, procure import Digest::SHA1algumas linhas mais tarde e substitua-o por import Digest::SHA.

Por fim, abra o arquivo /etc/ddclient.conf e faça com que seja algo parecido com isto (observe o protocolo):

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

A principal coisa que não me agrada é cortar um arquivo e interromper o gerenciamento de pacotes do Ubuntu. Uma solução melhor seria consertar o PPA.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.