Как стать автором
Обновить

Обход блокировок на OpenWRT с помощью HomeProxy (sing-box)

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров30K

HomeProxy или luci-app-homeproxy это часть проекта ImmortalWRT, графическая надстройка для sing-box позволяющая настроить подключение к shadowsocks, xray, vless, vmess, trojan.

В данной статье будет рассматриваться установка luci-app-homeproxy на OpenWRT 23.05.0-rc3 (поддерживаются версии 23.05.0 или SNAPSHOT).

Можно использовать как чистую версию OpenWRT так и от проекта ImmortalWRT.

Потребуется роутер со свободными 30 Мб памяти и минимум 256 Мб ОЗУ (Работающий HomeProxy занимает от 70Мб ОЗУ).

Оглавление:

  • 1. Установка luci-app-homeproxy

  • 2. Настройка homeproxy

1. Установка luci-app-homeproxy

Для установки сначала необходимо добавить дополнительные репозитории от проекта ImmortalWRT (если вы используете сборку от ImmortalWRT этот шаг пропускаем)

VERSION_ID=$(grep "VERSION_ID" /etc/os-release | awk -F '"' '{print $2}')
ARCH=$(grep "OPENWRT_ARCH" /etc/os-release | awk -F '"' '{print $2}')
sed -i 's/option check_signature/# option check_signature/g' /etc/opkg.conf
echo "src/gz immortalwrt_routing https://downloads.immortalwrt.org/releases/$VERSION_ID/packages/$ARCH/routing" >> /etc/opkg/customfeeds.conf
echo "src/gz immortalwrt_packages https://downloads.immortalwrt.org/releases/$VERSION_ID/packages/$ARCH/packages" >> /etc/opkg/customfeeds.conf
echo "src/gz immortalwrt_luci https://downloads.immortalwrt.org/releases/$VERSION_ID/packages/$ARCH/luci" >> /etc/opkg/customfeeds.conf
echo "src/gz immortalwrt_base https://downloads.immortalwrt.org/releases/$VERSION_ID/packages/$ARCH/base" >> /etc/opkg/customfeeds.conf

После чего обновляем список пакетов и устанавливаем luci-app-homeproxy

opkg update
opkg install luci-app-homeproxy

Если установка прошла успешно, переходим к настройке.

При возникновении проблем, замените $VERSION_ID на значение из Releases Index of /releases/ (immortalwrt.org) или отредактируйте файл /etc/opkg/customfeeds.conf с учётом актуального совместимого релиза ImmortalWRT

2. Настройка Homeproxy

Переходим в раздел Службы - Homeproxy

Сперва нужно добавить сервер, для этого переходим во вкладку Node Settings

Нажимаем Import share links и добавляем конфигурацию shadowsocks (outline), vless, trojan или иную.

После добавления нажимаем Импорт

Применяем изменения.

В качестве Main Node выбираем добавленный сервер.

DNS сервер на ваше усмотрение.

Routing Mode — Global (проксирование подключений к любым IP/ доменам, работу обхода блокировок в РФ по "GFWList" не проверял, теоретически это список большинства заблокированных в Китае и теперь в РФ ресурсов). "Bypass mainland China" и "Only proxy mainland China" это проксировать все адреса кроме адресов материкового Китая и и проксировать только адреса материкового Китая соответственно. Custom Routing - настройка проксирования согласно дополнительным правилам Access Control (ничего не проксируется по умолчанию)

Routing Ports — All Ports, если хотите перенаправлять все порты в Main Node или Common ports only (порты до 1024, всё что выше будет идти через шлюз по умолчанию).

Proxy Mode — Redirect TCP (перенаправление только TCP трафика, согласно правилам Homeproxy, а не основного firewall).

Redirect TCP + TProxy UDP тоже самое + проксирование UDP трафика через прокси.

Redirect TCP + Tun UDP как Redirect TCP + TProxy UDP, но UDP трафик идёт через интерфейс singtun и регулируется основными правилами firewall.

Tun TCP/UDP — весь трафик регулируется правилами firewall, этот вариант выбирал я, чтобы использовать его с BGP.

Поддержка IPv6 — по умолчанию выключена, при включении могут быть сложности с обходом блокировок, т.к. списки BGP и Access List в первую очередь ориентированы на IPv4, поэтому включайте на своё усмотрение.

ВПри выборе Tun TCP/UDP появится пункт Main UDP Node — UDP трафик можно направлять в тот же нод (Same as main node), в другой из списка или направлять в шлюз по умолчанию (Отключить).

Если вы выбрали что‑то кроме Tun TCP/UDP тогда нужно настроить Access Control, переходим туда.

Здесь настраивается входной и выходной интерфейс, по умолчанию остаётся пустым и определяется автоматически

Proxy filter mode — имеет опции:

Proxy listed only — проксирует трафик только для IP/MAC из списка.

Proxy all except listed — проксирует трафик для всех, кроме IP/MAC из списка.

Gaming mode IPv4/MAC — не проксирует UDP трафик для выбранных устройств.

Global Proxy IPv4/MAC — проксирует весь трафик для выбранных устройств.

Диапазоны адресов для WAN для проксирования (Proxy IPv4 IP-s) / направления в шлюз по умолчанию (Direct IPv4 IP-s).

В Proxy Domain List и Direct Domain List можно скопировать списки адресов для проксирования (Proxy IPv4 IP‑s) / направления в шлюз по умолчанию (Direct IPv4 IP‑s).

Сохраняем, Применяем изменения.

Статус HomeProxy должен измениться на RUNNING

Проверить статус работы и логи, а также подключение к Baidu и Google можно во вкладке Статус Службы.

Если вы выбрали Tun TCP/UDP необходимо перейти в раздел Сеть - Межсетевой Экран -

Добавить новый интерфейс.

Выбрать Протокол неуправляемый, из списка устройств singtun0, присвоить название, например Proxy и Создать интерфейс.

После чего перейти в настройки интерфейса singtun0 (Изменить)

Настройки межсетевого экрана — wan (или нужный вам вариант).

На этом основная настройка окончена.

Для настройки BGP рекомендую материал Точечный обход блокировок на роутере OpenWrt c помощью BGP / Хабр (habr.com) С помощью BGP (bird2).

Теги:
Хабы:
Всего голосов 11: ↑11 и ↓0+11
Комментарии18

Публикации

Истории

Работа

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань