Привязываем статический IP адрес к Raspberry Pi (Linux)
Авторизация по протоколу PPTP
Обладатели Raspberry Pi или сервера на Linux заинтересованы в качественном удаленном доступе к ним. А для этого лучше всего привязать статический IP адрес и заменить порты.
Услышали незнакомые термины и захотелось вызвать программиста на дом? В этом нет необходимости. Наша Инструкция написана «человеческим» языком такими же пользователями Сервиса как и Вы. Дочитав ее до конца, Вы убедитесь - процедура настройки удаленного доступа проста, и если немного разобраться, то все легко настроить самостоятельно.
Для Вашего удобства Инструкция интерактивная и поделена на шаги, а слева расположено меню для быстрой навигации. В первом шаге проверим оборудование, во втором привяжем IP, а в третьем настроим доступ. В заключении сделаем Контроль соединения, чтобы все работало стабильно. Инструкция покажет все необходимые сведения для настройки, после активации одного из тарифов в Личном кабинете и перехода по ссылке из данных Устройства.
Не будем терять времени, приступим!
Во избежание различных ошибок, обновите программное обеспечение Raspberry Pi или сервера на Linux, который будете привязывать к статическому IP адресу.
Убедитесь что программное обеспечение работает и открывается в локальной сети по ip-адресу с указанием порта.
Например, адрес в браузере может выглядеть так http://192.168.1.1:80/
, где:
http://
- протокол,
192.168.1.1
- локальный ip-адрес,
80
- порт, указан через :
двоеточие.
Двоеточие не пишется, если в клиентском приложении есть отдельное поле для ввода порта.
ПОЛУЧИТЬ
СТАТИЧЕСКИЙ IP АДРЕС
Авторизация - это успешная привязка 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 консоль :-)
Дальнейшие действия выполняем через SSH консоль.
- Установите PPTP-клиент, если ранее этого не делали. Выполните команду:
sudo apt-get install -y pptp-linux
- Скопируйте в 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
- Включите автоматическую авторизацию и переподключение. Скопируйте в консоль код и нажмите 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
- Добавьте задание в Cron запускать /birevia/ping_check.sh каждые 5 минут.
Следующую команду можно выполнять только один раз! Если Вы ранее уже выполняли эту команду на этом ПК, то пропустите этот пункт.
sudo echo '*/5 * * * * root /birevia/ping_check.sh' >> /etc/crontab
Что-то пошло не так? Не отчаивайтесь! Нажмите на ошибку и узнаете ее решение:
- После авторизации пропал доступ к интернету
Это случилось, потому что через наш IP адрес заблокирован выход в интернет (подробнее). В конфигурационном файле PPTP-клиента должен находиться параметр nodefaultroute
. В графическом интерфейсе найдите и отключите пункты наподобие:
Использовать для выхода в Интернет
Использовать шлюз по умолчанию
Использовать основной шлюз в удалённой сети
- Выбран неправильный протокол
Проверьте Тип (протокол)
созданного подключения. Должно быть PPTP. Если это не так, удалите подключение и создайте PPTP-клиент заново. Все получится!
- В Системном журнале мелькает строчка
LCP: timeout sending Config-Requests
Это значит, что существует какая-то проблема с пропуском PPTP-трафика со стороны оператора, через модем или вышестоящий роутер. Решить ее можно такими способами:
- Несколько раз отключите и включите питание модема;
- Включите
Пропуск PPTP-трафика
в настройках вышестоящего роутера или модема;
- Разрешите пропуск
GRE
протокола в межсетевом экране роутера/ПК, или отключите все правила и перезагрузите роутер/ПК;
- Удалите созданный PPTP-клиент. В Личном кабинете выберите другой Протокол, откройте заново или обновите Инструкцию по авторизации. Проделайте все шаги сначала.
- Выключите PPTP-клиент. Выберите другую Локацию в Личном кабинете, откройте заново или обновите Инструкцию по авторизации. Замените в PPTP-клиенте все изменившиеся данные, включите его. Либо удалите его и проделайте все шаги сначала.
- Ошибка в
Имя пользователя
, Пароль
или Адрес сервера
- Самая распространенная ошибка
В графиеском интерфейсе не расставили все галочки как в примере или в раскрывающихся списках активны другие параметры.
- Не подключается.
Почти всегда решение такое же, как и у третьей ошибки. Дерзайте!
- Все работало и перестало
Сделайте
Контроль соединения, про который написано в самом низу страницы. Полный порядок диагностики ищите
тут.
ПОЛУЧИТЬ
СТАТИЧЕСКИЙ IP АДРЕС
Чтобы программа на компьютере отвечала на статическом 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 адреса.
Добавили правила, но доступа нет? Ничего страшного - выберите ошибку и узнаете ее решение:
- Неправильный
Шлюз (GATEWAY)
В настройках Сети (Network)
оборудования в поле Шлюз (GATEWAY)
должен быть указан локальный ip-адрес роутера или компьютера, который вы авторизовали в Шаге 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 действительно нет ничего сложного. Эта процедура не требует специальных познаний, а с нашей универсальной Инструкцией выполнить ее сможет каждый. Более того, рассмотренные принципы настройки, хоть и с небольшими вариациями, применимы и к другому оборудованию :-)