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 receber ddclient (que atualiza OpenDNS com meu endereço IP atual) para funcionar. Eu tenho ele rodando como um daemon, mas ele nunca consegue atualizar meu endereço IP em openDNS .

Para solucionar problemas, estou executando ddclient da linha de comando da seguinte forma.

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

Meu /etc/ddclient.conf conté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 rm do arquivo de cache, ddclient funciona uma vez, mas falha em tempos subseqüentes.

    
por SpashHit 04.10.2011 / 14:50

3 respostas

4

Bug conhecido - upstream fixo - obtenha a versão mais recente de um PPA

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

O problema há muito tempo foi corrigido no ddclient (baseado em um dos patches vinculados no trac), mas o ddclient do Ubuntu é tão antigo (herdado do upstream) que nem pode ser remendado manualmente. (O Ubuntu está no rev. 106 / jan-2009, enquanto o mais recente é o r130 / nov-2011).

Solução:

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

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

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

        # bug #10: some dyndns providers does not return the IP so
        # we can't use the returned IP
        my ($status, $returnedip) = split / /, lc $line;
        $ip = $returnedip if (not $ip);
    
por ish 18.06.2012 / 15:16
4

Você quer o pacote ddclient mais recente do ppa: nathan-renniewaldock / ppa, mas esteja ciente de que este PPA contém muitos outros pacotes que você pode não querer, se tudo o que você quer fazer é obter o ddclient funcionando. Use 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-prefs e 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

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

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

Ou, se já tiver instalado, faça o seguinte:

sudo apt-get upgrade

Basta verificar se somente o ddclient será atualizado.

    
por Rob Fisher 05.11.2012 / 14:42
-1

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

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

Eu uso o NameCheap porque gosto da segurança de seu sistema de senha, que é vinculado a cada domínio individualmente, gerado automaticamente e pode ser alterado com rapidez e facilidade.

Meu problema mais recente era algo que o NameCheap não mostra no exemplo da Base de Conhecimento, mas era algo que eu lembrava de ter feito antes. Isso é que eu tenho que colocar uma vírgula entre os nomes de host que eu quero atualizado (O nome que vem antes do nome de domínio). Então, abaixo está o meu exemplo que atualmente funciona com o meu provedor de domínio.

daemon = 3600
ssl = sim
protocolo = namecheap
use = web, web = dynamicdns.park-seu-dominio.com / getip
server = dynamicdns.park-your-domain.com
login = yourdomainname.com
senha = 0fc0ur5ethi5i5n0tmypa55w0rdfoob
@, hostname1
faltando essa minúscula vírgula gera um erro

    
por Kurt Lysek 24.08.2015 / 03:14