Привязываем статический IP адрес к Raspberry Pi (Linux)

Авторизация по протоколу PPTP

Обладатели Raspberry Pi или сервера на Linux заинтересованы в качественном удаленном доступе к ним. А для этого лучше всего привязать статический IP адрес и заменить порты.

Услышали незнакомые термины и захотелось вызвать программиста на дом? В этом нет необходимости. Наша Инструкция написана «человеческим» языком такими же пользователями Сервиса как и Вы. Дочитав ее до конца, Вы убедитесь - процедура настройки удаленного доступа проста, и если немного разобраться, то все легко настроить самостоятельно.

Для Вашего удобства Инструкция интерактивная и поделена на шаги, а слева расположено меню для быстрой навигации. В первом шаге проверим оборудование, во втором привяжем IP, а в третьем настроим доступ. В заключении сделаем Контроль соединения, чтобы все работало стабильно. Инструкция покажет все необходимые сведения для настройки, после активации одного из тарифов в Личном кабинете и перехода по ссылке из данных Устройства.

Не будем терять времени, приступим!

Шаг 1. Готовимся к настройке

Во избежание различных ошибок, обновите программное обеспечение Raspberry Pi или сервера на Linux, который будете привязывать к статическому IP адресу.

Убедитесь что программное обеспечение работает и открывается в локальной сети по ip-адресу с указанием порта.

Например, адрес в браузере может выглядеть так http://192.168.1.1:80/, где:

  • http:// - протокол,
  • 192.168.1.1 - локальный ip-адрес,
  • 80 - порт, указан через : двоеточие.

Двоеточие не пишется, если в клиентском приложении есть отдельное поле для ввода порта.

ПОЛУЧИТЬ
СТАТИЧЕСКИЙ IP АДРЕС

Шаг 2. Авторизуем ID (доступно-после-активации-тарифа)

Авторизация - это успешная привязка Raspberry Pi или сервера на Linux к статическому IP адресу 185.195.xxx.xxx после создания и включения в нем PPTP-клиента (один из протоколов передачи данных). Все необходимые сведения, включая Логин и Пароль, есть в табличке Настройки PPTP-клиента.

По истечении 10 минут после того, как был создан PPTP-клиент или изменен протокол авторизации, проверьте в Личном кабинете статус Устройства. Видите надпись «Подключено»? Отлично, теперь можно переходить к следующему «Шагу 3. Проброс портов».

Если же в течение 15 минут подключение не произошло, то стоит обратиться к списку Частых ошибок авторизации. Они находятся ниже блока Настройки PPTP-клиента в этом Шаге.

172.17.1.x и 172.17.1.xxx - это ip-адреса для настройки PPTP-клиента и они не используются для удаленного доступа.

Данные, написанные СИНИМ ЦВЕТОМ, полностью выделяются и копируются в буфер обмена по клику. Вам остается лишь вставить их SSH консоль :-)

Настройки PPTP-клиента

Дальнейшие действия выполняем через SSH консоль.

  1. Установите PPTP-клиент, если ранее этого не делали. Выполните команду:
    sudo apt-get install -y pptp-linux
  2. Скопируйте в SSH консоль следующий код для создания файла авторизации:
    sudo cat > /etc/ppp/peers/birevia << CODE
    remotename PPTP
    require-mschap-v2
    require-mppe
    persist
    nodefaultroute
    lcp-echo-failure 4
    lcp-echo-interval 30
    maxfail 0
    mtu 1450
    mru 1450
    pty "pptp 185.195.xxx.xxx --nolaunchpppd"
    name (доступно-после-активации-тарифа)
    password (доступно-после-активации-тарифа)
    linkname birevia
    lock
    noauth
    refuse-pap
    refuse-eap
    refuse-chap
    refuse-mschap
    nobsdcomp
    nodeflate
    CODE
  3. Включите автоматическую авторизацию и переподключение. Скопируйте в консоль код и нажмите Enter
    sudo mkdir /birevia
    sudo cat > /birevia/ping_check.sh << CODE
    #! /bin/sh
    sudo ping 172.17.1.x -c 1 > /dev/null
    if [ "\$?" = 0 ]
    then
    	exit 0
    fi
    sudo poff birevia
    sudo pppd call birevia updetach
    sudo route add -net 172.17.1.0 netmask 255.255.255.0 gw 185.195.xxx.xxx
    CODE
    sudo chmod +x /birevia/ping_check.sh
  4. Добавьте задание в Cron запускать /birevia/ping_check.sh каждые 5 минут.

    Следующую команду можно выполнять только один раз! Если Вы ранее уже выполняли эту команду на этом ПК, то пропустите этот пункт.

    sudo echo '*/5 * * * * root /birevia/ping_check.sh' >> /etc/crontab

Частые ошибки авторизации

Что-то пошло не так? Не отчаивайтесь! Нажмите на ошибку и узнаете ее решение:

  1. После авторизации пропал доступ к интернету

    Это случилось, потому что через наш IP адрес заблокирован выход в интернет (подробнее). В конфигурационном файле PPTP-клиента должен находиться параметр nodefaultroute. В графическом интерфейсе найдите и отключите пункты наподобие:

    • Использовать для выхода в Интернет
    • Использовать шлюз по умолчанию
    • Использовать основной шлюз в удалённой сети
  2. Выбран неправильный протокол
    Проверьте Тип (протокол) созданного подключения. Должно быть PPTP. Если это не так, удалите подключение и создайте PPTP-клиент заново. Все получится!
  3. В Системном журнале мелькает строчка LCP: timeout sending Config-Requests
    Это значит, что существует какая-то проблема с пропуском PPTP-трафика со стороны оператора, через модем или вышестоящий роутер. Решить ее можно такими способами:
    • Несколько раз отключите и включите питание модема;
    • Включите Пропуск PPTP-трафика в настройках вышестоящего роутера или модема;
    • Разрешите пропуск GRE протокола в межсетевом экране роутера/ПК, или отключите все правила и перезагрузите роутер/ПК;
    • Удалите созданный PPTP-клиент. В Личном кабинете выберите другой Протокол, откройте заново или обновите Инструкцию по авторизации. Проделайте все шаги сначала.
    • Выключите PPTP-клиент. Выберите другую Локацию в Личном кабинете, откройте заново или обновите Инструкцию по авторизации. Замените в PPTP-клиенте все изменившиеся данные, включите его. Либо удалите его и проделайте все шаги сначала.
  4. Ошибка в Имя пользователя, Пароль или Адрес сервера
    Внимательно копируйте все данные из таблички Настройки PPTP-клиента.
  5. Самая распространенная ошибка
    В графиеском интерфейсе не расставили все галочки как в примере или в раскрывающихся списках активны другие параметры.
  6. Не подключается.
    Почти всегда решение такое же, как и у третьей ошибки. Дерзайте!
  7. Все работало и перестало
    Сделайте Контроль соединения, про который написано в самом низу страницы. Полный порядок диагностики ищите тут.

ПОЛУЧИТЬ
СТАТИЧЕСКИЙ IP АДРЕС

Шаг 3. Настраиваем порты

Чтобы программа на компьютере отвечала на статическом IP адресе удаленно, замените номер порта (или портов) в ее настройках на любой из диапазона Устройства и перезапустите ПО. Во время настройки и тестирования разрешите все входящие соединения на компьютере, к которому настраиваете удаленный доступ, иначе к нему не получится подключиться через интернет. Проверьте:

sudo iptables -nvL --line-numbers

В строке "Chain INPUT (..." должно быть "policy ACCEPT". В случае "policy DROP" выполните команду:

sudo iptables -P INPUT ACCEPT
sudo iptables-save

Вместо статического IP адреса 185.195.xxx.xxx можно использовать домен (доступно-после-активации-тарифа) и номера портов от 10000 до 10099 из диапазона ID (доступно-после-активации-тарифа).

Проверка статуса порта

После смены порта выполните команду:

sudo netstat -ntulp

В списке должен появиться порт из диапазона, который выбрали для программы. Введите в поле ниже его номер. Проверка покажет, отвечает ли ваше оборудование (программное обеспечение) на указанном порту статического IP адреса.

Частые ошибки настройки портов

Добавили правила, но доступа нет? Ничего страшного - выберите ошибку и узнаете ее решение:

  1. Неправильный Шлюз (GATEWAY)
    В настройках Сети (Network) оборудования в поле Шлюз (GATEWAY) должен быть указан локальный ip-адрес роутера или компьютера, который вы авторизовали в Шаге 2. После исправления перезагрузите оборудование.
  2. Порт назначения заблокирован сетевым экраном
    Отключите Фаервол и Брандмауэр. Перезагрузите компьютер (роутер) и убедитесь, что они действительно не работают. Иногда потребуется отключить еще и Службу Брандмауэра.

ПОЛУЧИТЬ
СТАТИЧЕСКИЙ IP АДРЕС

Контроль соединения

В мобильных сетях такой контроль необходим, чтобы модем, роутер или соединение автоматически перезагружались. Подробнее.

После настройки удаленного доступа к программному обеспечению и убедившись, что оно открывается и пингуется, сделайте проверку его доступности через удаленное подключение. Соединение будет перезагружено в том случае, если ПО станет недоступным через интернет.

Далее код содержит порт 10000. Если Вы использовали другой номер порта, то везде в коде ниже исправьте на него.

Проверьте статус порта, выполнив команду в SSH консоли:

(sudo nc 185.195.xxx.xxx 10000 -w 5 & sudo echo "Port OPEN") || sudo echo "Port CLOSED"

Статус "Port OPEN" означает можно заменить содержимое файла /birevia/ping_check.sh - в этом случае скопируйте в консоль код и нажмите Enter:

sudo cat > /birevia/ping_check.sh << CODE
#! /bin/sh
sudo nc 185.195.xxx.xxx 10000 -w 10 > /dev/null
if [ "\$?" = 0 ]
then
exit 0
fi
sudo poff birevia
sudo pppd call birevia updetach
sudo route add -net 172.17.1.0 netmask 255.255.255.0 gw 185.195.xxx.xxx
CODE
sudo chmod +x /birevia/ping_check.sh

Если указать адрес или порт, где ничего нет, либо остановится программа, либо задать периодичность проверки в Cron чаще чем раз в 5 минут, то соединение будет перезагружаться постоянно.

Как видите, в привязке статического IP адреса к Raspberry Pi или серверу на Linux действительно нет ничего сложного. Эта процедура не требует специальных познаний, а с нашей универсальной Инструкцией выполнить ее сможет каждый. Более того, рассмотренные принципы настройки, хоть и с небольшими вариациями, применимы и к другому оборудованию :-)