no-ip

Настройка клиента no-ip под ALTLinux.

Иногда хочется подключиться удаленно к своему домашнему/рабочему компьютеру, но ip адрес у него динамический. Следовательно его нужно как-то узнавать. Для этого есть сервисы, которые позволяют обновлять DNS записи при смене ip адреса компьютера. Раньше я пользовался DynDNS, но в связи с тем, что он стал платным, бесплатно можно получить аккаунт для обновления всего одой DNS записи, но и это проблематично, пришлось перейти на no-ip.

И так сначала регистрируемся на сайте http://www.no-ip.com/

Потом заходим в аккаунт и жмем на иконку с надписью "Add host"

Заполняем форму, вводим host name и правее выбираем домен, там есть платные и бесплатные (free) домены, я выбирал no-ip.org

Жмем "Create Host"

Все, через некоторое время в ДНС появится наша запись. проверить можно так:

[sf@sf-desktop ~]$ host speccyfan.no-ip.org
speccyfan.no-ip.org has address 178.126.4.15

Далее устанавливаем клиента, в 6-м бранче почему-то его еще нет, поэтому я стянул из сизифа srpm и пересобрал его.

Качаем отсюда, можно наверное сразу бинарики, но я качал src.rpm http://sisyphus.ru/ru/srpm/Sisyphus/noip/get

Собираем:

[sf@sf-desktop downloads]$ rpm --rebuild noip-2.1.9-alt2.src.rpm

На выходе получились следующие файлики:

[sf@sf-desktop x86_64]$ l
итого 76
drwxr-xr-x 2 sf sf  4096 Фев 27 19:48 ./
drwxr-xr-x 4 sf sf  4096 Фев 27 19:48 ../
-rw-r--r-- 1 sf sf 26341 Фев 27 19:48 noip-2.1.9-alt2.x86_64.rpm
-rw-r--r-- 1 sf sf 37799 Фев 27 19:48 noip-debuginfo-2.1.9-alt2.x86_64.rpm

Устанавливаем:

[root@sf-desktop x86_64]# apt-get install noip-2.1.9-alt2.x86_64.rpm
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Выбрано noip для 'noip-2.1.9-alt2.x86_64.rpm'
Следующие НОВЫЕ пакеты будут установлены:
  noip
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 0B/26,3kB архивов.
После распаковки потребуется дополнительно 63,2kB дискового пространства.
Совершаем изменения... 
Preparing...                 ########################################################################### [100%]
1: noip                      ########################################################################### [100%]
To configure the noip deamon, run noip -C as root.
This command will set the correct parameters in /etc/noip.conf.
Then you can restart the deamon with service noip restart.
Running /usr/lib/rpm/posttrans-filetriggers
Завершено.

И как просят запускаем noip -C от рута

[root@sf-desktop x86_64]# noip -C
Auto configuration for Linux client of no-ip.com.
Please enter the login/email string for no-ip.com  username
Please enter the password for user 'username'  *********
2 hosts are registered to this account.
Do you wish to have them all updated?[N] (y/N)  N
Do you wish to have host [bla-bla.no-ip.org] updated?[N] (y/N)  N
Do you wish to have host [speccyfan.no-ip.org] updated?[N] (y/N)  y
Please enter an update interval:[30]  5
Do you wish to run something at successful update?[N] (y/N)  N
New configuration file '/etc/noip.conf' created.

У меня в аккаунте уже две записи, мы обновляем только speccyfan.no-ip.org, интересен последний пункт, мне пока не надо, но при обновлении адреса, noip может выполнить произвольный скрипт. В общем ответив на эти простые вопросы мы создали конфигурационный файл /etc/noip.conf

Далее, не знаю почему, но со стандартным альтовским init.d скриптом noip работает не корректно. Поэтому я его немного поправил:

в файле /etc/init.d/noip, в функции start, строку

start_daemon --lockfile "$LOCKFILE" -- $processname $OPTIONS &&

я заменил на :

start_daemon --lockfile "$LOCKFILE" -- $processname -c /etc/noip.conf &&

После чего запускаем сервис:

[root@sf-desktop init.d]# service noip start
Starting noip service:                                                [ DONE ]

Смотрим что в логе:

Feb 27 19:56:49 sf-desktop noip[8028]: v2.1.9 daemon started with NAT enabled
Feb 27 19:56:49 sf-desktop noip: noip startup succeeded
Feb 27 19:57:34 sf-desktop noip[8028]: speccyfan.no-ip.org set to 178.126.0.47

Похоже работает :-)

Осталось только добавить его в автозагрузку

[root@sf-desktop init.d]# chkconfig noip on