FreeBSD: установка клиента DDNS ddclient

(www.dyndns.com)

Перед выполнением всех этих операций у Вас должен быть зарегистрирован аккаунт на сайте dyndns.com, и там же получено доменное имя. Предположим, вы настроили себе имя mycooldomain.dyndns.biz (это делается на страничке dyndns.com - перейдите на AccountAdd Host Services).

Процесс по шагам:

1. # locate ddclient
# cd /usr/ports/dns/ddclient
# make install (перед запуском этой команды убедитесь, что Интернет доступен на FreeBSD)
# make clean
Все, ddclient установлен. Из себя он представляет просто скрипт на perl, и находится он в /usr/local/sbin/ddclient. К сожалению, man для ddclient нет, докуметация по использованию есть в папке /usr/local/share/doc/ddclient, а также доступен help командой:
# ddclient -help | more
Приступим теперь к конфигурированию ddclient.

2. На сайте dyndns.com перейдите на SupportDNS ToolsUpdate Client Configurator. Поставьте галочку "Add To Config File" напротив вашего домена mycooldomain.dyndns.biz, выберите формат конфига ddclient и жмите кнопку Generate. Получим содержимое для ddclient.conf - конфига для нашего клиента DDNS:
## ddclient configuration file
daemon=600 # check every 600 seconds
syslog=yes # log update msgs to syslog
mail-failure=тут_будет_Ваш_email_который_ввели_при_регистрации # Mail failed updates to user
pid=/var/run/ddclient.pid # record PID in file.

## Detect IP with our CheckIP server
use=web, web=checkip.dyndns.com/, web-skip='IP Address'

## DynDNS username and password here
login=тут_будет_ваш_логин
password=##YOUR PASSWORD##

## Default options
protocol=dyndns2
server=members.dyndns.org

## Dynamic DNS hosts
mycooldomain.dyndns.biz

3. # cp /usr/local/etc/ddclient.conf.sample /usr/local/etc/ddclient.conf
Правим /usr/local/etc/ddclient.conf, чтобы там оказалось все то, что мы получили в генераторе на сайте dyndns.com. Я ввел все так, как сделал генератор, за исключением поставил вместо моего email слово root, чтобы сообщения сыпались в почтовый ящик администратора FreeBSD.

4. Добавляем строку в /etc/rc.conf (это будет запускать ddclient в режиме демона при загрузке):
ddclient_enable="YES"

5. Запускаем ddclient как демона:
# ddclient -daemon 600 -syslog
Замеченые глюки
Иногда после длительной работы или смены IP на внешнем интерфейсе ddclient перестает обновлять IP адрес, привязанный к доменному имени. В системный лог /var/log/messages с интервалом 5 минут при этом пишется сообщение "Apr 13 16:43:28 msinhome ddclient[910]: WARNING: cannot connect to checkip.dyndns.org:80 socket: IO::Socket::INET: Bad hostname 'checkip.dyndns.org'". Однако проверка доступности checkip.dyndns.org по порту 80 показывает, что все в порядке. Лечится рестартом ddclient:
# ps -ax | grep ddclient
91256 p1 S 0:02.58 ddclient - sleeping for 210 seconds (perl)
# kill 91256
# ddclient -daemon 600 -syslog

Обновлено: 12.03.2015