Настройка программы no-ip
Содержание
Для чего это нужно.
Очень часто бывают случаи, кагда адрес интернет сервер получает динамически от провайдера, а мы хотим, что бы данный сервер не только раздавал интернет, но и имел свое доменное имя, для поднятия своего HTTP и mail сервера, а так же, что бы администратор мог управлять данным сервером по ssh с любого места интернета. Для этого и служит программа no-ip.
Как оно работает
Вы регистрируете свое доменное имя на сайте www.no-ip.com и устанавливаете демоном к себе на сервер утилиту, которая периодически посылает на серевер no-ip.com данные о своем ip адресе и тот заносит их в свою базу DNS. И теперь если кто-то из инета запросит данный адрес, то DNS сервер ip-com выдаст ему актуальный на данный момент ip адрес.
Регистрация
- Для регистрации нудно зайти на сайт www.no-ip.com
- Зайти на ссылку Sign-up Now!
- Заполнить предложенную анкету.
- После этого на ваш адрес придет письмо, где надо подтвердить ваш аккаунт.
- После этого заходите на сайт www.no-ip.com и набираете свой mail и пароль и попадаете на страницу настроек.
- В прицципе там все понятно - надо вписать имя вашего сервера и выбрать домен (например: имя - voluzo, домен - sytes.net, и полное имя вашего сервера будет voluzo.sytes.net), а так же вписать ip адрес сервера на данный момент.
- Если хотите настроить почтовый сервер на вашем шлюзе, то надо вписать в MX record имя почтового сервера (mail.voluzo.sytes.net - для нашего случая)
- Нажимаете на Create Host
Установка
- Выкачиваете последнюю версию программы под Linux
- Разархивируете полученный файл в директорию /usr/local/src
# cp noip-duc-linux.tar.gz /usr/local/src # cd /usr/local/src # tar -zxf noip-duc-linux.tar.gz # cd noip-2.1.9-1 # make # cp redhat.noip.sh /etc/init.d/noip # chmod 744 /etc/init.d/noip # make install
При выполнении make install
- Выбираем какой интерфейс смотрит в инет
- Вводим email адрес, который использовали при регистрации
- Вводим пароль, который использовали при регистрации
Скрипт создает файл /usr/local/etc/no-ip2.conf
Добавляем в /etc/init.d/noip строки.
Было:
# Written by serge@vanginderachter.be and tested on Redhat 8 # ... and debugged by Uwe Dippel # 29-03-2003 # # Source function library.
Стало
# Written by serge@vanginderachter.be and tested on Redhat 8 # ... and debugged by Uwe Dippel # 29-03-2003 # # Startup script for noip client # # chkconfig: 345 85 15 # description: noip client # processname: noip # config: # ### BEGIN INIT INFO # Provides: noip # Required-Start: $network # Required-Stop: $network # Default-Start: 3 4 5 # Short-Description: noip client # Description: noip client ### END INIT INFO # Source function library.
Далее запускаем drakxconf и делаем noip - сервисом.
Настройка ADSL модема
Надо настроить модем так, что бы при обращении к внешнему IP адресу модема, запросы переадресовывались Интернет серверу.
WAN настраиваем как обычно.
Данные от провайдера:
Port - 0 VPI - 8 VCI - 35 Connection Type - PPPoE Encapsulation Mode - LLS/SNAP-BRIDGING Вводим Login и пароль (szt, szt)
Настройка взята тут
Далее заходим на модем через браузер, чтобы открыть на нем порт. Для этого в браузере пишем 192.168.0.1 или 192.168.1.1 | |
Далее заходите в NAT и открываете порт своего модема. Примечание: У всех модемы разные, и как открывать порты узнавайте на сайте производителя | |
Откройте порты 80, 22, 8245. Надо открыть универсальный TCP/UDP порт, или один TCP и одни UDP. | |
Пропишите соответствующий DMZ host. Это ip адрес вашего сервера, обычно 192.168.1.2. Далее сохраните настройки модема. |
Перезапустите NOIP.
# service noip stop # service noip start
Если NOIP не правильно определяет адрес
Если мы прокинули порт на модеме, а noip определяет наш адрес как 192.168.1.2 (адрес интерфейса), то можно поступить так.
1. Исключаем noip из сервисов, например, с помощью drakxconf (Для Mandriva).
2. Устанавливаем билиотеку php-cli, если она не установлена
$sudo urpmi php-cli
2. Создаем файл /etc/scripts/myip.php, который определяет наш IP адрес через сайт www.myip.ru и отправляет его на сайт NOIP.
#!/usr/bin/php <?php $page = file_get_contents('http://www.myip.ru/get_ip.php?loc=http://www.myip.ru/'); //echo $page; preg_match_all('|<TR><TD bgcolor=white align=center valign=middle>(.+)</TD></TR>|',$page,$result); $rez=$result[1][rand(0,0)]; //echo $rez; exec ('/usr/local/bin/noip2 -i'.$rez); ?>
3. Добавляем в crontab задание
# Отправка в noip IP адреса */10 * * * * root /etc/scripts/myip.php
И теперь каждые 10 минут скрипт будет определять Ваш внешний IP адрес и отправлять его на NOIP.