Настройка клента Dynamic DNS на Ubuntu

Типичная ситуация – дома широкополосный интернет, провайдер предоставляет публичный динамический IP (или даже диапазон из 2 адресов, как в моем случае). В описании услуги провайдер пишет, что можно подключить 2 компьютера, бла-бла-бла. Но любой продвинутый пользователь сразу тащит домой простейший маршрутизатор (через веб-интерфейс их настроить достаточно легко, или всегда найдется знакомый, который сможет это сделать), гики собирают маршрутизатор сами – им либо интересно, либо они хотят получить какую-то дополнительную функциональность, например настроить веб-сервер, прокси, качалку торрентов, Jabber/ICQ-бота, да мало ли что можно навесить даже на простейший компьютер. В большинстве случаев на таком маршрутизаторе-сервере ставится Linux, а в последнее время все чаще и чаще – Ubuntu Linux.
И вот все работает, на веб-сервер выкладывается контент, веб-камера помогает присмотреть за детьми и домашними любимцами, все довольны. Но в один прекрасный момент по DHCP обновляется IP и сервер уже не найти. Но не все так плохо, есть специальные сервера Dynamic DNS, как раз для такого случая. Как пример рассмотрим DynDNS.com.
Нам понадобится акаунт на сервере, как его получить смотрим здесь – Dynamic DNS How-to. Даже бесплатный акаунт позволяет многое.

Теперь займемся Linux-машинкой. Установим необходимые компоненты (рассматривается Ubuntu 8.04.2). Для начала установим компоненты для передачи пароля в шифрованном виде:

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

Затем установим сам клиент – ddclient, и сконфигурируем его:

$ sudo apt-get install ddclient

Потом идет мастер установки. Выбор сервера Dynamic DNS:

Полное доменное имя вашего хоста:

Имя пользователя на сервисе DDNS:

Пароль:

Интерфейс доступа:

На этом конфигурация клиента для более старых версий заканчивается, в некоторых новых конфигурация продолжается. Автостарт на подключение PPP:

Режим демона (отвечаем положительно):

Интервал обновления, у меня 300 секунд, но можно и гораздо реже:

Установка окончена, в итоге файл конфигурации (/etc/ddclient.conf) выглядит примерно так:

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
#
pid=/var/run/ddclient.pid
protocol=dyndns2
use=if, if=web
server=members.dyndns.org
login=your-dyndns-login
password='your-dyndns-password'
your-hostname.dyndns.org

Проблема решена, наш компьютер доступен из любой точки мира по указанному нами доменному имени. Всегда есть возможность пройти мастер установки заново (если сложно разобраться в файле конфигурации):

$ sudo dpkg-reconfigure ddclient
$ sudo /etc/init.d/ddclient restart

Теперь самое вкусное. Настроим передачу пароля по SSL и подправим работу с адресами. В файле конфигурации заменяем строки:

#use=if, if=web
use=web, web=checkip.dyndns.com/, web-skip='IP Address'

Добавляем параметры, указывающие клиенту использовать SSL и обновлять публичный адрес каждые 5 минут:

ssl=yes
daemon=300

Теперь файл конфигурации выглядит примерно так:

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
#
pid=/var/run/ddclient.pid
protocol=dyndns2
#use=if, if=web
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
ssl=yes
daemon=300
server=members.dyndns.org
login=your-dyndns-login
password='your-dyndns-password'
your-hostname.dyndns.org

Убедимся, что клиент действительно запускается как демон:

$ sudo nano /etc/default/ddclient

# Configuration for ddclient scripts
# generated from debconf on Tue Apr 7 23:18:04 EEST 2009
#
# /etc/default/ddclient
#
# Set to "true" if ddclient should be run every time a new ppp connection is
# established. This might be useful, if you are using dial-on-demand
run_ipup="false"
#
# Set to "true" if ddclient should run in daemon mode
run_daemon="true"
#
# Set the time interval between the updates of the dynamic DNS name in seconds.
# This option only takes effect if the ddclient runs in daemon mode.
daemon_interval="300"

Все в порядке, продолжаем наслаждаться жизнью.

Оригинальная статья: Mexpolk’s Howtos. Ubuntu (Gutsy): DynDNS Client Setup.

7 Comments

VanArmanMarch 10th, 2011 at 16:58

Ув. автор, статья неплохая.
На всякий случай для тех кто столкнется с вопросом удаления (сам долго искал)))

# Деинсталяция ddclient (DyDNS)
cd
su
test -x /etc/rc.d/init.d/ddclient && /etc/rc.d/init.d/ddclient stop
rm -f /usr/sbin/ddclient /etc/cron.hourly/ddclient \
/etc/cron.monthly/ddclient /etc/rc.d/init.d/ddclient \
/etc/rc.d/rc?.d/*ddclient
test -d /etc/ddclient && rm -r /etc/ddclient
test -d /var/cache/ddclient && rm -r /var/cache/ddclient
exit
find ~/src -maxdepth 1 -type d -name “ddclient-*” -exec rm -r {} \;
rm -f ~/installed/ddclient-*.tar.*

Плюшевый КрысMarch 11th, 2011 at 12:07

Странно-сложная процедура. Не проще ли воспользоваться стандартной процедурой удаления через apt-get?

[…] Настройки сразу будут спрашиваться в процессе установки. Думаю с настройкой проблем ни у кого не возникнет. А если возникнут, то вот инструкция: ссылка […]

GhostKUJanuary 7th, 2013 at 22:53

http://dlinkddns.com

maksMay 31st, 2013 at 22:49

Статья хорошая. Сразу вопрос. Стоит апач. например установил я dyndns и есть зарегеный адрес xxxxx.dyndns.com но когда заходишь по этому адресу попадаешь на модем! как сделать что бы попадал на Апач????

maksMay 31st, 2013 at 22:51

если можно то пошагово! Модем D-link 2640u – у него есть поддержка dyndns…

Плюшевый КрысJune 2nd, 2013 at 22:45

Я не знаком с этим модемом D-Link, но если там есть функции маршрутизации, то нужно просто прокинуть порт 80/tcp (скорее всего, используется по умолчанию) на машину, где установлен Apache. Если это чисто модем, то прийдется либо купить отдельный маршрутизатор, либо настроить самому, например как я давно писал здесь: http://rat.admin.lv/?p=208

Leave a comment

Your comment