В этой статье я не буду расписывать что такое сервис Dynamic DNS, что такое внешний ip и зачем делать привязку доменного имени к вашему ip адресу. Предполагается, что у вас уже есть аккаунт с сервера www.dyndns.com а также вы скачали клиента ddclient, т.к. сегодня я хочу рассказать именно о нем.
Для пользователей ubuntu linux я хочу только посоветовать следовать всем инструкциям и внимательно вбивать ответы на вопросы 🙂 Т.к. правка конфига и всякие вкусности будут сопровождать вас на всем протяжении
sudo apt-get install ddclient
Для freebsd систем клиента можно поставить из портов.
Для остальных ОС установка клиента тоже проста до безобразия. В readme все написано, но кому лень читать приведу здесь.
Заходим в папку к ddclient и выполняем
cp ddclient /usr/sbin/
mkdir /etc/ddclient
mkdir /var/cache/ddclient
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
Настройка ddclient.conf и запуск сервиса.
1. Выполним команду для просмотра ip на сетевых интерфейсах, а также посмотрим работает ли команда ddclient.
# ddclient -daemon=0 -query
use=if, if=lo address is 127.0.0.1
use=if, if=eth0 address is 192.168.0.1
use=web, web=dyndns address is 91.122.xx.xx
Все работает, наш внешний адрес мы увидели.
2. Теперь правим ddclient.conf и приводим его к такому виду
daemon=300 # проверять смену адреса каждые 300 сек
syslog=yes # записываем действия в системный журнал
mail=root # кому шлем письма об успешном обновлении
mail-failure=root # кому письма об ошибках
pid=/var/run/ddclient.pid
ssl=no # не используем метод ssl
login=mik #логин на dyndns.com
password=password #пароль на dyndns.com
use=web #метод определения анешнего ip-адреса
use=if, if=eth3 #интерфейс где определим этот эдрес
server=members.dyndns.org, \ #сервер
protocol=dyndns2 \ #протокол
hostname.dyndns.com #ваш зарегистрированный домен
Вот и все. Можно запускать первое тестовое принудительное обновление ip.
ddclient -force
Если обновление ddns прошло успешно, то можно ставить сервис в автозагрузку. Если не успешно, то смотрим логи syslog.
Для redhat подобных систем в каталоге ddclient есть примеры стартовых скриптов.
Выполняем
cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient
#добавим в стартовые скрипты
/sbin/chkconfig --add ddclient
#первый раз стартуем руками
/etc/rc.d/init.d/ddclient start
#не забываем про команды остановки и рестарта
/etc/rc.d/init.d/ddclient stop
/etc/rc.d/init.d/ddclient restart
Нюансы, если у вас статический ip адрес.
Dyndns.com требует чтобы у вас раз в 15 дней проходило обновление вашего хоста, а иначе DDNS посчитает, что ваш хост неактивный. Я столкнулся с этой проблемой, когда перешел на статику. Т.к. адрес у меня не меняется, то и ddclient не хотел обновлять мой ip.
Выход я нашел – прописал в ddclient.conf
use=ip, ip=91.122.xx.xx # static IP's
static=yes, \
server=members.dyndns.org, \
protocol=dyndns2 \
hostname.dyndns.com
И не стал запускать ddclient как сервис, а просто поставил в crontab раз в неделю обновлять ip по принуждению командой ddclient -force.
Кстати, вот еще такой способ обновлять ваш ip адрес через браузер, но для этого надо знать свой ip. В браузере набираете в одной строчке
http://Login_DynDNS:Password@members.dyndns.org/nic/update?
system=dyndns&hostname=you_hostname.dyndns.com&myip=91.122.xx.xx
Только почистите потом историю браузера, чтобы не светить пароль 🙂
Возможные проблемы:
Если вы уверены, что все правильно сделали, а обновление адреса подвисает и тупит долгое время а потом не обновляется, то скорей всего проблема в вашем firewall. Должен быть доступ с сайта members.dyndns.org с 80 порта на ваш хост.
Например для iptables в linux. (пишем в одну строку)
iptables -A INPUT -i eth3 -p tcp -s 204.13.248.112/32 --source-port 80
-d Ваш_IP --destination-port 1024:65535 -j ACCEPT
204.13.248.112/32 – это members.dyndns.org
Вроде все…