Почему ddclient выдает ошибку «Неверный IP» при попытке обновить динамический DNS?

8

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

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

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

Мой /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он работает один раз, но в последующие времена происходит сбой.

SpashHit
источник
ОП ты все еще ищешь ответ? Если это так, вам может понадобиться опубликовать свой вопрос, так как он помечен для закрытия. =)
Ringtail
до сих пор не нашли способ заставить его работать
SpashHit
Пожалуйста, рассмотрите возможность редактирования вашего вопроса, чтобы предоставить дополнительную информацию. Это может сдвинуть ваш вопрос к вершине и получить ответ.
Ringtail
Что еще я могу добавить?
SpashHit
вы пробовали поддержку клиентов? sourceforge.net/projects/ddclient/support
Ringtail

Ответы:

4

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

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

Проблема уже давно была исправлена в ddclient (на основе одного из патчей, связанных в трассировке), но ddclient в Ubuntu настолько древний (унаследованный от апстрима), что его нельзя исправить даже вручную. (Ubuntu выпускается в редакции 106 / январь-2009, а последняя - в r130 / ноябрь-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.


Для любопытных, вот немного патча / ошибки:

        # ошибка # 10: некоторые провайдеры dyndns не возвращают IP, так
        # мы не можем использовать возвращенный IP
        my ($ status, $ returnip) = split / /, lc $ line;
        $ ip = $ returnip if (не $ ip);
иш
источник
4

Вам нужен более новый пакет 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 будет обновлен.

Роб Фишер
источник
Стоит отметить, что эта информация больше не действительна. Если вы попытаетесь следовать этим инструкциям в Ubuntu 12.04, вы получите эту ошибку: «FATAL: Ошибка загрузки Perl-модуля Digest :: SHA1, необходимого для обновления freedns». Чтобы исправить эту ошибку, вам нужен ddclient 3.8.2, но этот PPA имеет только 3.8.1.
Франклион
0

пропустив обновление @ с до 71.422.000.000.

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

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

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

daemon = 3600
ssl = yes
протокол =
использование namecheap = web, web = dynamicdns.park-your-domain.com / getip
server = dynamicdns.park-your-domain.com
login = yourdomainname.com
пароль = 0fc0ur5ethi5i5n0tmypa55w0rdfoob
@, имя хоста 1 отсутствует, это имя хоста1
крошечная запятая выдает ошибку

Курт Лысек
источник
Я не знаю, почему это получает отрицательные голоса. Если вы ищете проблемы namecheep, это всплывает как вопрос. Ваше решение помогло мне отлично. Спасибо!
nbroeking