Por que o ddclient está me dando um erro de "IP inválido" ao tentar atualizar o DNS dinâmico?

8

Estou tendo muita dificuldade em conseguir ddclient(que atualize o OpenDNS com meu endereço IP atual) funcionar. Eu o tenho em execução como um daemon, mas ele nunca consegue atualizar meu endereço IP em openDNS.

Para solucionar problemas, estou executando ddclientna linha de comando da seguinte maneira.

(Nestes exemplos, os valores entre colchetes [] são substitutos dos valores reais por razões de segurança)

Meu /etc/ddclient.confcontém:

use=web, web=checkip.dyndns.org/, web-skip='IP Address'
server=updates.opendns.com
protocol=dyndns2
login=[my login]
password=[my password]
Home

Quando eu corro:

sudo ddclient -daemon=0 -debug -verbose -noquiet

Eu recebo:

WARNING:  file /var/cache/ddclient/ddclient.cache, line 3: Invalid Value for keyword 'ip' = ''
...
WARNING:  skipping update of Home from <nothing> to [my real ip].
WARNING:   last updated <never> but last attempt on Tue Oct  4 08:38:32 2011 failed.

Se eu rmusar o arquivo de cache, ddclientele funcionará uma vez, mas falhará nos períodos subsequentes.

SpashHit
fonte
OP você ainda está procurando uma resposta? Nesse caso, talvez seja necessário reposicionar sua pergunta, pois ela é sinalizada para encerramento. =)
Ringtail 07/03
ainda não encontrou uma maneira de fazê-lo funcionar
SpashHit
Considere editar sua pergunta para fornecer informações adicionais. Isso pode levar sua pergunta ao topo e revelar uma resposta.
01
O que mais posso adicionar?
SpashHit 12/03
você já tentou o suporte ao cliente? sourceforge.net/projects/ddclient/support
Ringtail

Respostas:

4

Bug conhecido - corrigido a montante - obtenha a versão mais recente de um PPA

Isso é / foi de um "bug" conhecido - é causado pelo provedor de DNS dinâmico usando o protocolo dyndns2 incorretamente e enviando respostas incorretas para ddclient.

O problema já foi corrigido no ddclient (com base em um dos patches vinculados no trac), mas o ddclient do Ubuntu é tão antigo (herdado do upstream) que nem sequer pode ser corrigido manualmente. (O Ubuntu está na rev. 106 / Jan-2009, enquanto o mais recente é r130 / Nov-2011).

Solução:

  1. Adicione este PPA comsudo apt-add-repository ppa:nathan-renniewaldock/ppa
  2. sudo apt-get update && sudo apt-get install ddclient (será atualizado se necessário)

O PPA possui as versões mais recentes para 10.04, 11.10 e 12.04.


Para os curiosos, aqui está o bit do patch / buggy:

        # bug # 10: alguns provedores de dyndns não retornam o IP, portanto
        # não podemos usar o IP retornado
        meu ($ status, $ returnip) = divisão / /, lc $ linha;
        $ ip = $ returnip if (não $ ip);
ish
fonte
4

Você deseja o pacote ddclient mais recente do ppa: nathan-renniewaldock / ppa, mas cuidado com o fato de que este PPA contém muitos outros pacotes que você pode não querer se tudo o que você deseja é que o ddclient funcione. Siga estas etapas para atualizar apenas o ddclient.

sudo apt-get install python-software-properties
sudo apt-add-repository ppa:nathan-renniewaldock/ppa

Agora, como root, crie o arquivo /etc/apt/preferences.d/nathan-prefse edite-o para ficar assim (incluindo a linha em branco que é importante):

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

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

Isso diz ao apt-get para ignorar pacotes do PPA que não seja o ddclient. Portanto, agora deve ser seguro fazer isso para instalá-lo:

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

Ou, se você já o instalou, faça o seguinte:

sudo apt-get upgrade

Apenas verifique se apenas o ddclient será atualizado.

Rob Fisher
fonte
Vale ressaltar que essas informações não são mais válidas. Se você tentar seguir estas instruções no ubuntu 12.04, receberá este erro: "FATAL: Erro ao carregar o módulo Perl Digest :: SHA1 necessário para a atualização dos freedns". Para corrigir esse erro, você precisa do ddclient 3.8.2, mas este PPA possui apenas 3.8.1.
frankster
0

ignorando a atualização de @ de para 71.422.000.000.

Na maioria das vezes, quando recebo esse aviso depois de configurar meu ddclient
AVISO: arquivo /var/cache/ddclient/ddclient.cache, linha 3: Valor inválido para a palavra-chave 'ip' = ''
é devido a um erro de digitação ou apenas um pequeno erro tweek no arquivo ddclient.conf. Preciso parar e compará-lo com os exemplos dos provedores de domínio, linha por linha.

Uso o NameCheap porque gosto da segurança do sistema de senhas vinculado a cada domínio individualmente, gerado automaticamente e pode ser alterado de maneira rápida e fácil.

Meu último problema foi algo que o NameCheap não mostra no exemplo da Base de Conhecimento, mas era algo que eu lembrava de ter feito antes. Ou seja, eu tenho que colocar uma vírgula entre os nomes de host que eu quero atualizar (o nome que vem antes do nome de domínio). Portanto, abaixo está o meu exemplo que atualmente funciona com meu provedor de domínio.

daemon = 3600
ssl = yes
protocolo = namecheap
use = web, web = dynamicdns.park-your-domain.com / getip
server = dynamicdns.park-your-domain.com
login = yourdomainname.com
password = 0fc0ur5ethi5i5n0tmypa55w0rdfoob
@, hostname1 em
falta pequena vírgula gera um erro

Kurt Lysek
fonte
Não sei por que isso está diminuindo. Se você procurar problemas com namecheep, isso será exibido como uma pergunta. Sua solução me ajudou perfeitamente. Obrigado!
nbroeking