или Использование сервисов DynDNS.com во FreeBSD
Провайдер по соглашению с пользователем, как правило, для работы в Интернете выдаёт тому временный IP-адрес (так называемый «динамический IP»), который периодически меняется — чаще при перезагрузке ADSL-модема или же при регистрации компьютера пользователя в сети провайдера.
Другие пользователи получают доступ к любому серверу в Интернете, вводя в строке адреса Web-браузера (или другого сетевого клиента)
имя сервера, а не его реальный IP-адрес — резолвинг, то есть соотнесение имени сервера с IP-адресом — разрешение имён, необходимым для сетевого «общения» программ — обеспечивается системой DNS, работающей на независимых серверах в Интернете.
Так как имя сервера должно разрешаться браузерами клиентов в реальный IP-адрес, необходимо установить жёсткую связь между именем сервера и его IP-адресом. Услуга по регистрации
выделенного IP-адреса (да-да, и за выделенный, т.н. «статический IP», тоже взимается плата — но это другой случай) во всемирной системе DNS предоставляется на платной основе, что ограничивает число публичных Web- и FTP-серверов платёжеспособными клиентами. Однако сервисы, подобные DynDNS, понижают планку выхода на просторы Web-хостинга для обычных пользователей Интернета! Пользователи могут бесплатно использовать для своих страничек, расположенные на их собственных компьютерах, доменные имена третьего уровня.
Устанавливается все просто
- На ADSL-модеме выводим наш компьютер в демилитаризованную зону — то есть вводим IP-адрес сетевой карты в настройках ADSL-модема в поле ввода на страничке DMZ и открываем доступ к компьютеру извне.
- Идём на сайт www.dyndns.com и регистрируем на нём учётную запись.
После подтверждения регистрации вводим имя и пароль для входа в пользовательский аккаунт. Идём на страничку настройки: My Services → Host Services → Add Hostname
На страничке «Add New Hostname» вводим имя сервера (в поле Hostname);
выбираем домен из списка доступных;
вводим IP-адрес (в поле IP Address для начала можно использовать автоопределённый IP).
Подтверждаем создание хоста нажатием кнопки «Create Host».
- Жёсткая связь между именем сервера (хостом) и IP-адресом во FreeBSD может поддерживаться посредством демона ddclient.
При загрузке компьютера этот демон определяет назначенный провайдером IP-адрес пользователя и отсылает на сервер DynDNS информацию о новом IP-адресе, используя регистрационные данные пользователя сервиса. Сервер DynDNS присваивает этот IP-адрес ранее зарегистрированному хосту и вносит данные во всемирную систему DNS. Демон периодически отсылает данные на сервер DynDNS, если IP-адрес хоста пользователя изменяется.
Клиент ddclient устанавливается из порта:
% cd /usr/ports/dns/ddclient
% make install clean
Копируем и правим файл конфигурации демона:
% cp /usr/local/etc/ddclient.conf.sample /usr/local/etc/ddclient.conf
% chmod 600 /usr/local/etc/ddclient.conf
% ee /usr/local/etc/ddclient.conf
Содержимое конфиг-файла:
# метод определения IP-адреса, назначенного провайдером пользователю
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
# логин и пароль к dyndns
login=izen
password=vеrytорseсret
server=members.dyndns.org, \
protocol=dyndns2 \
izenfire.dyndns.info
daemon=300 # проверять обновление IP-адреса каждые 300 секунд
syslog=yes # использовать syslog для журналирования деятельности
#-mail=root # можно включить отправку административных сообщений для root'а
#-mail-failure=root # можно включить отправку административных сообщений для root'а об ошибках
pid=/var/run/ddclient.pid # record PID in file.
ssl=yes # использовать ssl — работать через библиотеку ssl
Обеспечиваем автозапуск демона при старте системы:
% echo 'ddclient_enable="YES"' >> /etc/rc.conf
Запускаем ddclient в текущей сессии:
% /usr/local/etc/rc.d/ddclient start
Или запускаем ddclient как демона с интервалом проверки 10 минут:
% ddclient -daemon 600 -syslog
Контролировать работу демона можно так:
% cat /var/log/messages | grep ddclient
- Установка и настройка публичного Web-сервера на примере Apache Tomcat объясняется в этой статье: Apache Tomcat 6.0 во FreeBSD 7.0.
P.S.
Замеченые неисправности
Иногда после продолжительной работы или смены IP-адреса на модеме
ddclient перестает обновлять IP-адрес, привязанный к доменному имени. В системный журнал /var/log/messages при этом пишутся сообщения примерно такого содержания: «Dec 4 01:01:55 comp ddclient[12910]: WARNING: cannot connect to checkip.dyndns.org:80 socket: IO::Socket::INET: Bad hostname 'checkip.dyndns.org'». Однако сервер checkip.dyndns.org по порту 80 доступен и должно быть всё в порядке. Такое поведение
ddclient лечится только его рестартом:
% /usr/local/etc/rc.d/ddclient stop
% /usr/local/etc/rc.d/ddclient start
комментарии (42)
ЗЫ: но хостинг стоит таких копеек…
Можно использовать чтобы захостить игровой сервер и т.д. применений множество.
Неймсервер настроен на сервер dyndns, и потом уже идёт перенаправление. Так что всё работает очень даже шустро.
/usr/ports/dns/noip/pkg-descr:
«This is a port of No-IP.com's dynamic DNS update client. When
configured correctly, the client will check the local IP address at a
given time interval for any changes. If the local IP address has
changed it will notify the DNS servers at No-IP.com and update the IP
corresponding to your No-IP/No-IP+ hostname.
WWW: www.No-IP.com/
— Eyal Soha
esoha@attbi.com»
www.dyndns.com/support/kb/using_inadyn_with_dyndns_services.html#system
Говорю же: работает по совместительству. Хотя может маршрутизировать с гигабитными сетевушками очень большой трафик.
На мой взгляд «попав» в Интернет, «открыв доступ к компьютеру извне», наоборот попадаешь в милитаризованную зону.
Только вот открывать все подряд, ИМХО, — не лучший подход. Вполне достаточно пробросить отдельные сервисы. Например, http, ftp и ssh. Большинство других сервисов, если нужно, можно туннелировать через тот же ssh.
Иногда легче заказчику показывать именно так, чем каждый раз заливать на сервак, тем более когда проект в стадии очень динамичных изменений.
имхо не вижу разницы с этим топиком
для мастер-класса слабовато
Вот только с балкона его прийдётся перенести в комнату.
Успехов!
Когда я городил домашний мини сервер, я хотел было навернуть на него все. И ddns клиент, и шейпер, и самбу, и еще тучу всего. Но позже пришел к выводу, что модем как фаервол, шейпер, ppoe клиент меня устраивает. Тем более, что при отключении скажем электричества, тот сервер долго на UPS не протянет, а модем в купе с точкой доступа и ноутом вполне. Поэтому решено было функции разделить. А тот самый сервачек живет у меня в качестве домашнего файл сервера и хоста для виртуальных машин.
Правда динамический dns мне сейчас не требуется, так как имею статический IP.
И еще вопрос, где выгоднее брать привязку с нормальным доменным именем (в dynDns это стоит порядка $30)?
Там много доменов с интересными именами.
Один из путей обновления данных — не демоном, а специальным url-ом, который даётся при регистрации. Этот url можно дёргать с помощью fetch cron-ом.
Может быть, не совсем безопасно, но зачастую ведь бывает как в истории про неуловимого Джо.
в кузе (откуда он взялся см выше по топику) 2 100мбс сетевых xl0 и dc0, вифи карточка ral0 и пппое соединение с провайдером ng0(созданное мпдой), ип какого слать?
по умолчанию в документации отсылается ип ppp0, у меня такого не имеется поэтому нужно добавить
use=if, if=ng0
use=web # via web
То есть IP-адрес, с которого пришёл запрос на обновление, и будет считаться «входящим» для хоста.
А так — ещё один слой гибкости.
cd /usr/ports/dns/noip
make install clean
rehash
noip2 -C
> вводим свои данные <
добавляем в "автозагрузку":
echo 'noip_enable="YES"' >> /etc/rc.conf
запускаем:
/usr/local/etc/rc.d/noip start
или просто:
noip2
вроде ничего не забыл