Настройка программы no-ip

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску

Для чего это нужно.

Очень часто бывают случаи, кагда адрес интернет сервер получает динамически от провайдера, а мы хотим, что бы данный сервер не только раздавал интернет, но и имел свое доменное имя, для поднятия своего HTTP и mail сервера, а так же, что бы администратор мог управлять данным сервером по ssh с любого места интернета. Для этого и служит программа no-ip.

Как оно работает

Вы регистрируете свое доменное имя на сайте www.no-ip.com и устанавливаете демоном к себе на сервер утилиту, которая периодически посылает на серевер no-ip.com данные о своем ip адресе и тот заносит их в свою базу DNS. И теперь если кто-то из инета запросит данный адрес, то DNS сервер ip-com выдаст ему актуальный на данный момент ip адрес.

Регистрация

  1. Для регистрации нудно зайти на сайт www.no-ip.com
  2. Зайти на ссылку Sign-up Now!
  3. Заполнить предложенную анкету.
  4. После этого на ваш адрес придет письмо, где надо подтвердить ваш аккаунт.
  5. После этого заходите на сайт www.no-ip.com и набираете свой mail и пароль и попадаете на страницу настроек.
  6. В прицципе там все понятно - надо вписать имя вашего сервера и выбрать домен (например: имя - voluzo, домен - sytes.net, и полное имя вашего сервера будет voluzo.sytes.net), а так же вписать ip адрес сервера на данный момент.
  7. Если хотите настроить почтовый сервер на вашем шлюзе, то надо вписать в MX record имя почтового сервера (mail.voluzo.sytes.net - для нашего случая)
  8. Нажимаете на Create Host

Установка

  1. Выкачиваете последнюю версию программы под Linux
  2. Разархивируете полученный файл в директорию /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

  1. Выбираем какой интерфейс смотрит в инет
  2. Вводим email адрес, который использовали при регистрации
  3. Вводим пароль, который использовали при регистрации

Скрипт создает файл /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)

Настройка взята тут

Login modem
Далее заходим на модем через браузер, чтобы открыть на нем порт.
Для этого в браузере пишем 192.168.0.1 или 192.168.1.1
Вкладка NAT ADSL модема
Далее заходите в NAT и открываете порт своего модема.
Примечание: У всех модемы разные, и как открывать порты узнавайте на сайте производителя
Открытие портов NAT->Port
Откройте порты 80, 22, 8245. Надо открыть универсальный TCP/UDP порт, или один TCP и одни UDP.
Настройка DMZ
Пропишите соответствующий 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.