Como posso obter o ddclient para trabalhar 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. Eu recebo esta mensagem em / var / log / syslog:

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

Eu tentei usar a versão atualizada do ddclient a partir do PPA alternativo descrito em esta resposta , mas eu acertei 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 isso:

E: Unable to locate package libdigest-sha1-perl

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

    
por Rob Fisher 02.11.2012 / 23:59

4 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

A página de clientes do DNS livre e ddclient --help fornecem configurações de exemplo do ddclient. Reinicie o ddclient para que as alterações entrem em vigor:

sudo service ddclient restart
    
por ændrük 15.11.2012 / 06:00
3

Consegui que o FreeDNS funcionasse 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/);
    
por matrixman 14.09.2014 / 00:13
2

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

Portanto, os passos completos são, primeiro, porque o add-apt-repository não é instalado por padrão:

sudo apt-get install python-software-properties

Depois, como descrito por izx:

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

Agora, este repositório contém muitos pacotes, mas nós só queremos o ddclient. Então faça 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 ddclient:

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

Agora, torne-se root e edite / usr / sbin / ddclient. Procure require Digest::SHA1 e substitua por require Digest::SHA . Em seguida, procure import Digest::SHA1 algumas linhas depois e substitua-o por import Digest::SHA .

Por fim, abra /etc/ddclient.conf e faça com que pareça 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 estou feliz é invadir um arquivo e quebrar o gerenciamento de pacotes do Ubuntu. Uma solução melhor seria conseguir o PPA fixo.

    
por Rob Fisher 03.11.2012 / 17:01
-1

Você pode obtê-lo de: libdigest-sha1-perl

Você pode precisar também instalar o libio-socket-ssl-perl . Verifique seu syslog

    
por user211708 24.12.2013 / 06:18