В данном руководстве описывается как настроить dynamic dns клиент для синхронизации вашего IP адреса с сервисом DDNS Zoneedit.com- самым дешевым сервисом DDNS (на момент написания абонентская плата составляла 1USD в месяц). Так же плюсом данного сервиса является то, что доменное имя при работе не искажается. А также с сервисом Noip.com.

Предполагаем, что у вас есть доменое имя (yourdomain.com) и аккаунт на Zoneedit(Noip), и что вы настроили записи для вашего домена на сайте Zoneedit.

В данном руководстве описывается настройка ddns-клиента для домена «yourdomain.com»

Установка

  1. Для начала необходимо установить некоторые пакеты из официального репозитория Ubuntu:

    sudo apt-get install ddclient ssh libio-socket-ssl-perl

    В процессе установки будут заданы некоторые вопросы для предварительной настройки ddclient. такие как:

    1. Выбирете DNS сервис: zoneedit.com

    2. Имя пользователя для логина на сервисе: <ваше_имя_пользователя>

    3. Пароль для входа на сервисе: <ваш_пароль>

    4. Доменное имя: yourdomain.com

    5. Интерфейс для работы (wlan0, eth0 и т.д.): <интерфейс>

Настройка Zoneedit.com

  1. После установки необходимдо дополнительно сконфигурировать

    /etc/ddclient.conf
    sudo vim /etc/ddclient.conf

    Необходимо добавить записи для «daemon», «ssl» и заменить «use=if, if=web» with «use=web, web='http://www.zoneedit.com/checkip.html/', web-skip='IP Address'» как показано в примере ниже:

    # Configuration file for ddclient generated by debconf
    #
    # /etc/ddclient.conf
    
    daemon=300
    pid=/var/run/ddclient.pid
    ssl=yes
    protocol=zoneedit1
    ## use=if, if=web
    use=web, web='http://legacy.zoneedit.com/checkip.html/', web-skip='IP Address'
    ## server=www.zoneedit.com
    server=dynamic.zoneedit.com
    login=
    password='*******
    tux.yourdomain.com
  2. Теперь открываем

    /etc/default/ddclient
    sudo vim /etc/default/ddclient

    И проверяем, что файл содержит следующие строки:

    run_ipup="false"
    run_daemon="true"
    daemon_interval="300"

    Вы можете выставить интервал обновления IP (daemon_interval) меньше или больше, но он должен совпадать со значением, указанным в

    /etc/ddclient.conf
  3. Теперь необходимо перезапустить ddclient для применения изменений конфигурации:

    sudo /etc/init.d/ddclient restart
  4. Для того, что бы проверить статус службы ddclient, выполните

    sudo /etc/init.d/ddclient status

    Если при перезапуске вы не получаете ошибок, значит служба перезапускается корректно.

  5. Корректный перезапуск службы не означает, что синхронизация вашего IP работает и настроена правильно. ddclient записывает свой лог в

    /var/log/syslog

    , поэтому для отслеживания состояния, необходимо использовать команду tail

    tail -f /var/log/syslog
  6. И дождаться очередной попытки обновить IP адрес, при обновлении вы получите вывод аналогичный следующему:

     Feb 5 21:16:36 tux ddclient[12034]: SUCCESS: updating yourdomain.com: IP address set to <ваш IP>(200: Update succeeded.)

    при попытке обновить IP, когда он не менялся:

    Feb 5 21:16:36 tux ddclient[12034]: SUCCESS: updating yourdomain.com: IP address set to <ваш IP>(201: No records need updating.)

    Это значит ddclient настроен и работает корректно. Поздравляем!

Ошибки

1

Если вы получаете сообщения в

/var/log/syslog

подобные следующему:

Feb 5 21:13:44 tux ddclient[11788]: WARNING: caught SIGTERM; exiting
Feb 5 21:13:45 tux ddclient[11894]: FATAL: Error loading the Perl module IO::Socket::SSL needed for SSL connect.

Вам необходимо проверить конфигурационные файлы

/etc/ddclient.conf

и

/etc/default/ddclient

на соответствие изложенному выше описанию

Обратите внимание, что в
/etc/ddclient.conf

используются одинарные кавычки, возможно в этом Ваша ошибка. Так же проверьте, что все необходимые пакеты установлены.

2

Другая распространенная ситуация, когда в

/var/log/syslog

получаете сообщения подобные следующему:

WARNING: file /var/cache/ddclient/ddclient.cache, line 3: Invalid Value for keyword 'ip' = ''

Для решения данной проблемы необходимо удалить файлы кэша ddclient

sudo rm /var/cache/ddclient/ddclient.cache
sudo /etc/init.d/ddclient restart

3

Проблема может возникать при работе с сервисом zoneedit.com, связана она с частым изменением IP адреса больше 3 в течение 10 секунд или больше 5 в течение часа. В логах начнёт появляться ошибка

"FAILED: updating xxx.xxxxx.com: 702: Update failed: Too many updates too quickly, try again later.

Это связано с особенностями предоставления сервиса zoneedit.com. Официальный ответ техподдержки zoneedit.com:

«If you have received a 702 error while attempting to update the zone records, this indicates you are exceeding traffic thresholds set by our system. You are only able to send 3 requests in a 10-second window, no more than 5 requests in an hour. If the threshold is exceeded the zone will be locked from updates for one hour. The zone will only be unlocked once no update requests have been sent for a full hour.»

Что в вольном переводе означает: Если вы получаете ошибку 702 при попытке обновить записи зон, значит вы превысили лимит трафика, установленный нашей системой. Вы можете отправлять 3 запроса в 10-секундном окне не более 5 запросов в час. Если лимит трафика превышается, зона блокируется для обновлений на один час. Зона будет разблокирована только в том случае, если не будет получено запросов на обновление в течение полного часа.

Настройка Noip.com

Различия в настройке, только информация в ddclient.conf:

sudo nano /etc/ddclient.conf
protocol=noip
use=if, if=ppp0
server=dynupdate.no-ip.com
login=yourlogin
password='password'
example.yourdomain.com

Ссылки