Почему ddclient дает мне & ldquo; Неверный IP-адрес & rdquo; ошибка при попытке обновить динамический DNS?

Мне очень трудно заставить ddclient (который обновляет OpenDNS с моим текущим IP-адресом) работать. Он работает как демон, но мне никогда не удается обновить мой IP-адрес на openDNS.

Для устранения неполадок я запускаю ddclient из командной строки следующим образом.

(В этих примерах значения в квадратных скобках [] являются резервными для реальных значений по соображениям безопасности)

My /etc/ddclient.conf содержит:

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

Когда я запускаю:

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

, я получаю:

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.

Если я rm файл кеша, ddclient работает один раз, но затем происходит сбой при последующих раз.

8
задан 18 June 2012 в 17:17

3 ответа

Известная ошибка - зафиксированный в восходящем направлении - получает последнюю версию от PPA

Это от известной "ошибки" - она вызывается динамическим поставщиком DNS, использующим dyndns2 протокол неправильно и отправляющим уродливые ответы на ddclient.

Проблема была давно решена в ddclient (на основе одного из патчей, связанных в trac), но ddclient Ubuntu является столь древним (наследованный от восходящего потока), что это не может даже быть исправлено вручную. (Ubuntu находится на версии. 106/Jan-2009, в то время как последнее r130/Nov-2011).

Решение:

  1. Добавьте этот PPA с sudo apt-add-repository ppa:nathan-renniewaldock/ppa
  2. sudo apt-get update && sudo apt-get install ddclient (обновит при необходимости),

PPA имеет последние версии для 10,04, 11.10 и 12.04.


Для любопытного вот бит патча/багги:

        # 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);
4
ответ дан 18 June 2012 в 17:17

Вам нужен более новый пакет ddclient из ppa: nathan-renniewaldock / ppa, но имейте в виду, что этот PPA содержит много других пакетов, которые вам могут не понадобиться, если все, что вам нужно, - это заставить работать ddclient. Используйте эти шаги только для обновления ddclient.

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

Теперь, как пользователь root, создайте файл /etc/apt/preferences.d/nathan-prefs и отредактируйте его так, чтобы он выглядел так (включая пустую строку, которая важна):

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

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

Это говорит apt-get игнорировать пакеты из PPA кроме ddclient. Так что теперь это должно быть безопасно сделать, чтобы установить его:

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

Или, если вы уже установили его, сделайте это:

sudo apt-get upgrade

Просто убедитесь, что только ddclient собирается быть обновлен.

0
ответ дан 18 June 2012 в 17:17

Пропуск обновления @ с 71.422.000.000.

Большую часть времени, когда я получаю это предупреждение после настройки моего ddclient
ПРЕДУПРЕЖДЕНИЕ: файл /var/cache/ddclient/ddclient.cache, строка 3: недопустимое значение для ключевого слова 'ip' = ''
это из-за опечатки или просто небольшого изменения в файле ddclient.conf. Мне нужно построчно проверить и сравнить мои примеры с провайдерами домена.

Я использую NameCheap, потому что мне нравится безопасность их системы паролей, которая привязана к каждому домену индивидуально, генерируется автоматически и может быть изменена быстро и легко.

Моей последней проблемой было то, что NameCheap не показывает в их примере с Базой знаний, но я вспомнил, что должен был сделать раньше. То есть я должен поставить запятую между именами хостов, которые я хочу обновить (имя, которое стоит перед доменным именем). Ниже приведен мой пример, который в настоящее время работает с моим поставщиком домена.

daemon = 3600
ssl = yes
protocol = namecheap
use = web, web = dynamicdns.park-your-domain.com / getip
server = dynamicdns.park-your-domain.com
login = yourdomainname.com
password = 0fc0ur5ethi5i5n0tmypa55w0rdfoob
@, hostname1
< sup> пропустить эту крошечную запятую выдает ошибку

0
ответ дан 18 June 2012 в 17:17

Другие вопросы по тегам:

Похожие вопросы: