web-dev-qa-db-fra.com

Pourquoi ddclient m'indique-t-il l'erreur "Invalid IP" lors de la tentative de mise à jour du DNS dynamique?

J'ai beaucoup de mal à faire fonctionner ddclient (qui met à jour OpenDNS avec mon adresse IP actuelle). Je le fais fonctionner en tant que démon, mais il ne réussit jamais à mettre à jour mon adresse IP à openDNS.

Pour résoudre ce problème, je lance ddclient à partir de la ligne de commande comme suit.

(Dans ces exemples, les valeurs entre crochets [] sont des remplaçants des valeurs réelles pour des raisons de sécurité)

Mon /etc/ddclient.conf contient:

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

Quand je cours:

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

Je reçois:

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.

Si je rm le fichier de cache, ddclient fonctionne une fois, mais échoue par la suite.

8
SpashHit

Bug connu - corrigé en amont - récupère la dernière version d'un PPA

Ceci est/était dû à un "bogue" connu - il est causé par le fournisseur DNS dynamique à l'aide de dyndns2 protocole incorrect et envoi de réponses mal formées à ddclient.

Le problème a été résolu depuis longtemps dans ddclient (basé sur l'un des patchs liés dans le trac), mais le ddclient d'Ubuntu est si ancien (hérité de l'amont) qu'il ne peut pas même être patché manuellement. (Ubuntu est sur le rév. 106/Jan-2009, tandis que le dernier est r130/Nov-2011).

Solution:

  1. Ajouter ce PPA avec Sudo apt-add-repository ppa:nathan-renniewaldock/ppa
  2. Sudo apt-get update && Sudo apt-get install ddclient (sera mis à niveau si nécessaire)

Le PPA a les dernières versions pour 10.04, 11.10 et 12.04.


Pour les curieux, voici le patch/buggy bit:

 # bug # 10: certains fournisseurs dyndns ne renvoient pas l’IP, donc 
 # nous ne pouvons pas utiliser l’IP retournée 
 my ($ status, $ returnip) = split// , lc $ line; 
 $ ip = $ returnip si (pas $ ip); 
4
ish

Vous voulez le nouveau paquet ddclient de ppa: nathan-renniewaldock/ppa, mais sachez que ce PPA contient de nombreux autres paquets que vous ne voudrez peut-être pas si tout ce que vous voulez faire est de faire fonctionner ddclient. Suivez ces étapes pour mettre à niveau uniquement ddclient.

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

Maintenant, en tant que root, créez le fichier /etc/apt/preferences.d/nathan-prefs et éditez-le afin qu'il ressemble à ceci (y compris la ligne vide qui est importante):

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

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

Ceci dit à apt-get d'ignorer les paquets de PPA autres que ddclient. Alors maintenant, cela devrait être sûr de le faire pour l'installer:

Sudo apt-get update && Sudo apt-get install ddclient

Ou si vous l'avez déjà installé, procédez comme suit:

Sudo apt-get upgrade

Il suffit de vérifier que seul le client sera mis à niveau.

4
Rob Fisher

en ignorant la mise à jour de @ de à 71.422.000.000.

La plupart du temps, lorsque je reçois cet avertissement après avoir configuré mon ddclient
ATTENTION: fichier /var/cache/ddclient/ddclient.cache, ligne 3: valeur non valide pour le mot clé 'ip' = ''
Cela est dû à une faute de frappe ou à une petite tweek dans le fichier ddclient.conf. Je dois m'arrêter et le comparer à mes exemples de fournisseurs de domaine, ligne par ligne.

J'utilise NameCheap parce que j'aime la sécurité de leur système de mot de passe, lié à chaque domaine individuellement, généré automatiquement et pouvant être modifié rapidement et facilement.

Mon dernier problème était quelque chose que NameCheap ne montrait pas dans leur exemple de base de connaissances, mais que je me souvenais de devoir faire auparavant. C’est-à-dire que je dois mettre une virgule entre les noms d’hôte que je veux mettre à jour (le nom qui précède le nom de domaine). Voici donc mon exemple qui fonctionne actuellement avec mon fournisseur de domaine.

démon = 3600
ssl = yes
protocole = namecheap
utiliser = web, web = dynamicdns.park-your-domain.com/getip
server = dynamicdns.park-your-domain.com
login = votrenomdedomaine.com
mot de passe = 0fc0ur5ethi5i5n0tmypa55w0rdfoob
@, hostname1
manquer cette petite petite virgule jette une erreur

0
Kurt Lysek