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).