Найти тему
BE_Advanced

Получаем всегда внешний белый IP адрес у "РОСТЕЛЕКОМ" Часть 1.

Всем привет. Статья посвящена "Ламерам" и "Аникейщикам". Так что Крутые супер админы и гуру не судите строго.

Возникла потребность подключаться к своему компьютеру по "RDP" из любой точки мира. Проблема решается DDNS, но "Ростелеком" выдает белые и серые адреса при авторизации. Платить провайдеру за белый ip адрес, жадность душила. Кто то может сказать что можно использовать приложения удаленного доступа а-ля "Anydesk", но это не путь самурая =)

Поэтому имеем:

  • Роутер TP-Link C59 v1 (Можно любой другой который поддерживает OPENwrt)
  • Прошивка OPENwrt 21.02 c пакетами
  • Провайдер "Ростелеком"
  • Сервис DDNS duckdns.org

Я как ламер использую графический интерфейс OpenWrt под названием Luci. Туда ставим пакеты : MC, BASH, Terminal (что бы не использовать Putty и ssh.)

Заходим в терминал пишем ifconfig что бы узнать название нашего интерфейса wan, в моем случае "pppoe-wan".

Далее создаем файл:

Touch /usr/ipw

В нём пишем:

#!/bin/bash
STR=`ifconfig "Имя интерфейса"|grep inet`
STRARR=' ' read -a array <<< "$STR"
STRIP="${array[1]}"
I=`echo $STRIP | tr '.' ' '`
I=`echo $I | tr '/:' ' '`
STRARR=' ' read -a array <<< "$I"
STRIP1="${array[1]}"
STRIP2="${array[2]}"
STRIP3="${array[3]}"
STRIP4="${array[4]}"

if [[ $STRIP1 -eq "172" || $STRIP1 -eq "11" || $STRIP1 -eq "192" ]];
then
echo $STRIP1"."$STRIP2"."$STRIP3"."$STRIP4": ""Restarting Wan Interface"

(ifdown "Имя интерфейса"; sleep 5; ifup "Имя интерфейса") &

sleep 10

/usr/ipw

else

echo $STRIP1"."$STRIP2"."$STRIP3"."$STRIP4": ""White Wan IP"

fi

____________________________________________________________________________________

Вот как выглядит у меня.  Где переменные STRIP1 подставляем начальные цифры серых IP.
Вот как выглядит у меня. Где переменные STRIP1 подставляем начальные цифры серых IP.

Для проверки можем выполнить его /bin/bash/ /usr/ipw

Скрипт перегружает WAN интерфейс до тех пор пока IP адрес не станет белым. Далее в Luci проходим по пути System/Scheduled task и пишем:

*/10 * * * * /bin/bash /usr/ipw

Так наш скрипт будет выполняться каждые 10 минут.
Так наш скрипт будет выполняться каждые 10 минут.

На этом заканчиваю с первой частью. Заранее извиняюсь за свой первый опыт на дзен. Так что ребята критикуем, комментируем указываем на ошибки. Если материал зайдет, то напишу вторую часть о том как скрипт поставить в автозагрузку Procd, настроить DDNS, WAKE ON LAN, а так же прокинуть порт для RDP. Всем спасибо! ДА ПРИБУДЕТ С ВАМИ СИЛА!\

P.S.

Гуру помните BOLGENOS? Оставляю отсылочку =)
Гуру помните BOLGENOS? Оставляю отсылочку =)