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.
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).
Sudo apt-add-repository ppa:nathan-renniewaldock/ppa
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);
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.
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