Введение

Наши реалии довольно суровы, сейчас даже стало сложно не то что зайти на какой нибудь chatGPT, но и посмотреть любимый ютюбчик. Если на пк и телефонах мы еще можем использовать VPN, то вот как обстоят дела с приставками, smartTV/android TV? Если на многих телеках иногда поддержка приложений заканчивается быстро, что уж тут говорить о ВПН или прокси, туда их вообще фиг пихнешь.

Дома у каждого из вас скорее всего есть проводной интернет, а значит роутер тоже есть. Для роутеров ведь тоже существует линукс, причем свободный и гибкий - это OpenWRT. В рамках данного гайда/проекта, я расскажу, как можно обеспечить в своем доме качественное интернет покрытие, используя ARM железяки и linux. Но нет, речь пойдет не о перепрошивке роутера, ибо это дело может во первых окирпичить ваш роутер, ну а во вторых - у многих из вас дома роутеры "бытового класса", как и у меня, которые просто нет смысла даже шить. ибо 64 мегабайта дискового пространства хватить конечно можно, но это будет впритык, а нам хотелось бы управлять всей системой через WEB-UI.

P.S. Конечно есть Keenetic и его фишки, но я таким добром не обладаю и рассказать на примере кинетик роутеров это не могу.

Данный гайд подойдет только на OrangePI zero или OrangePI zero 3, на версию 2 я не нашел прошивки, если у вас получится ее найти - все шаги будут аналогичны. Но так же использовать мощную плату под это дело будет скорее менее рационально, если вы конечно не собираетесь крутить на ней дополнительно докер, или же какой то веб хост. На 3й версии прошивка существует как снапшот(в активной разработке), поэтому проще прилечь к стабильной стороне ядра и выбрать чисто зеро-версию.

Что такое Orange PI?

Апельсинка - она же orange pi, из себя представляет линейку микро компов - одноплатников, по цене обеда в макдаке(буду говорить мак а не вкусно и точка, все же под VPN сижу). Чем она лучше малинки(Raspberry?) - да тем что там есть UBOOT а не встроенный говнозагрузчик. Ну и цена, порядком ниже, а мощность за копейки поражает.

Что нам понадобится?

1.Платформа Orange pi zero/zero 2/zero 3

Типы orangePI zero
Типы orangePI zero

Цены разнятся, но диапазон примерно такой

zero - 2000 (256-512мб ОЗУ)

zero 3 - 3000-3500(1-4гб ОЗУ)

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

2.USB-TTL переходник (По желанию)

Orange имеет на борту UART интерфейс, через который мы можем видеть логи и взаимодействовать с системой легко и просто. Стоит лишь подключить 3 провода к плате и воткнуть usb часть в ноут, подключиться через putty на этот TTL со скоростью 115600(115200) и можно не использовать SSH (просто приятная и удобная альтернатива, у нас есть всего 1 ethernet порт и мы можем случайно убить конфигурацию сети, потеряв соединение с orange)

А теперь - почему это важно?

Когда мы заливаем образ openwrt на флешку, мы не переформатируем ее, лишь иногда заатирая то что было доэтого на флешке, поэтому убив конфигурацию - будет очень сложно придти к заводским настройкам даже после перепрошивки флешки, поэтому будьте аккуратны и следуйте четко инструкции.

3.SD Карта и пара патч кордов

Мне все эти дары предоставил продавец, вам возможно нужно будет найти флешку минимум на 2 гб, чем выше класс тем лучше, ну и стандартный RJ45 на RJ45 Кабель.

4.Комп/Ноут на Linux/Windows

сейчас кратко по софту

Винда - Putty(ssh/ttl), Win32DiskImager/Rufus

Linux - screen (для ttl) и встроенный ssh/Стандартная утилита Диски в gnome на Ubuntu/Debian

5. Сервак с VPN

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

Настройка 3xUI - тип снял довольно классно и информативно

Пора начинать

Первое - что нам необходимо сделать - скачать образ системы openwrt

Orange Pi Zero

Orange Pi Zero 3

Лично я собираю свое устройство на версии Zero с 512 мб оперативной памяти(как писал выше - более мощное железо под это дело мне не нужно). Задумка такова - что мы имеем один комплектный сетевой адаптер, второй как usb адаптер, в один у нас приходит интернет от провайдера(eth1) - из второго(стокового eth0) выходит локалка с пробросом на VPN канал, весь трафик течет через него.

Прошивка

Берем нашу SD карту и заливаем на нее через win32DiskImager образ, я это делаю из под линукса(там предварительно архив нужно распаковать .img.gz > .img)

Debian/Ubuntu
Debian/Ubuntu
Win32DiskImager
Win32DiskImager

Первичная конфигурация

После прошивки вставляем нашу sd карту в Orange Pi, подключаем патч-кордом ее к нашему ПК(Orange pi сама выдаст ему IP) и подаем на нее питание

Огни на разъеме ethernet мигнут 3 раза, что будет означать целостность UBOOT и плата вскоре загрузится. Тем временем нам нужно зайти по адресу http://192.168.1.1

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

Отлично, система есть, но у нас всего 1 порт инета, USB порт работать пока не будет, как нам производить последующую конфигурацию?

Следуем инструкции, заходим в Систему - Администрирование - Доступ SSH, выбираем наш LAN и сохраняем изменения через Save & Apply

Далее нам нужно сделать наш Lan порт не DHCP сервером, а клиентом, чтобы наша апельсинка узнала, что такое интернет. Для этого выполняем шаги

Так же нажимаем Save > Save & Apply > Apply and keep Settings и наш мини-шлюзик будет ожидать, когда ему на вход придет интернет от вашего домашнего роутера, прямое соединение уже не даст ничего.

Поэтому подключаем ее к WIFI роутеру, смотрим какой IP ей отдаст роутер. В моем случае это 192.168.1.178, узнать точный можно или через LAN сканер(Любой из Google play или AppStore), или через админку роутера.

Если на этом этапе зайти на ее веб морду, по новому ip адресу, то заметим один казус

У меня флешка на 4гб, но диска у нас всего 100мб, надо это исправить.

Подключение по SSH и расширение диска

Логин будет root, а пароль тот, что вы поставили в веб морде

После успешного подключения нам надо выполнить ряд команд в терминале

opkg update
opkg install cfdisk losetup f2fs-tools lsblk nano mc nftables

Эти команды обновят списки пакетов и установят нужные утилиты, после успешной установки пишем

cfdisk /dev/mmcblk0

Откроется cfdisk и поможет расширить наш основной раздел - mmcblk0p2

Именно на этом разделе выбираем через Tab Resize

Ну и вводим наш новый объем (по дефолту он выставляет максимальный). После нажимаем Write и Quit соответственно. После этого сектор будет максимального объема, но система не умеет сама индексировать эти изменения, поэтому пропишем еще один мини скрипт в нашу консоль

LOOP="$(losetup -n -O NAME | sort | sed -n -e "1p")"
ROOT="$(losetup -n -O BACK-FILE ${LOOP} | sed -e "s|^|/dev|")"
OFFS="$(losetup -n -O OFFSET ${LOOP})"
LOOP="$(losetup -f)"
losetup -o ${OFFS} ${LOOP} ${ROOT}
fsck.f2fs -f ${LOOP}
mount ${LOOP} /mnt
umount ${LOOP}
resize.f2fs ${LOOP}
reboot

Вы увидите в консоли логи работы скрипта, после уходим на reboot

Для убедительности после перезагрузки глянем объем диска в веб морде

Это уже совсем другое дело.

Добавляем поддержку USB-Ethernet адаптеров

Так же подключаемся по SSH

opkg update
opkg install kmod-usb-net kmod-usb-net-asix kmod-usb-net-cdc-ether kmod-usb-net-mcs7830 kmod-usb-net-rtl8152 kmod-usb-net-rndis
reboot

Эти модули поддерживают большинство популярных USB Ethernet адаптеров:

  • kmod-usb-net - базовый драйвер

  • kmod-usb-net-asix - для чипсетов ASIX

  • kmod-usb-net-cdc-ether - для CDC Ethernet устройств

  • kmod-usb-net-rndis - для RNDIS устройств

    После установки можем подключить наш ethernet-донгл и перейти к настройке самого моста, чтобы трафик мог идти между портами и наша платка стала полноценным шлюзом. Заходим в веб морду

    В наших интерфейсах

    Добавляем интерфейс eth1 и даем ему имя WAN, конфигурируя его как DHCP клиента

    На нашем LAN интерфейсе нажимаем изменить(Edit)

    Конфигурируем его как Static Address и задаем IP с маской

  • Мой шлюз будет раздавать IP адреса, а сам будет доступен по ip 10.0.0.1

    Теперь остается последний шаг - фаервол, необходимо зайти в наш WAN интерфейс во вкладку Firewall settings

    Кидаем его в группу Wan фаерволл зоны. Сохраняем все изменения и наша зверюшка уже будет прокидывать через себя интернет, веб морда и ssh доступен по 10.0.0.1

  • На этом этапе мы почти закончили настройки нашего устройства.

Настройка VPN проксирования

Устанавливаем пакет v2raya, так же ставим и luci-app-v2raya чтобы у нас был GUI интерфейс.

После установки пакетов - переходим в новую вкладку Services>V2RayA

Тут нам необходимо произвести активацию сервиса нажав на галочку и применив изменения

Теперь сервис запущен, переходим в веб интерфейс(10.0.0.1:2017) и ожидаем, пока наш сервис обновит свои внутренние пакеты, буквально через 2 минуты после этого перезагружаем страницу и видим графический интерфейс на русском языке.

Тут просто проходим, создавая учетку.

Наконец - последний рывок - делаем импорт нашего VLESS/VMESS/TROJAN профиля

Это активирует профиль VPN, но чтобы шла переадресовка пакетов, нужно зайти в настройки V2R и проставить поля как на картинке

Применяем все настройки и наслаждаемся

Теперь Orange pi принимает инет от провайдера и раздает нам уже VPN напрямую. Теперь Chatgpt, YouTube, Netflix и другие сервисы нам будут доступны.

Это мой дебют на Хабре, приходите в наш паблик по линуксу и подобным гайдам, буду очень рад. Я показал лишь прямой путь, от идеи до цели, настройки можете менять и использовать так, как нравится вам.

Наш тгк - жду вас там ;-)

Комментарии (4)


  1. Artem_Khromov
    07.02.2025 07:28

    Не увидел настройки динамической маршрутизации, а значит весь домашний трафик будет идти за рубеж, в вашем случае Нидерланды. Госуслуги, банк, РЖД и т.д. работать не будут


    1. meowk1r1_wikilinux Автор
      07.02.2025 07:28

      мне с несколькими сетками это и не особо нужно, но согласен, надо добавить будет


  1. jhoag
    07.02.2025 07:28

    покрыть весь дом vpnом

    Сервак с VPN

    VPN проксирования

    В статье описана настройка прокси. При чём тут VPN?


    1. meowk1r1_wikilinux Автор
      07.02.2025 07:28

      больше из за привычки, VLESS, VMESS и т.д. хоть и протоколы проксации, но их часто под vpn заносят, так же можно использовать и wireguard, но у меня он стабильностью не блещет