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
Если установка прошла успешно, переходим к настройке
2. Настройка Homeproxy
Переходим в раздел Службы - Homeproxy
Сперва нужно добавить сервер, для этого переходим во вкладку Node Settings
Нажимаем Import share links и добавляем конфигурацию shadowsocks (outline), vless, trojan или иную.
После добавления нажимаем Импорт
Применяем изменения
В качестве Main Node выбираем добавленный сервер
DNS сервер на ваше усмотрение
Routing Mode - Global (работу обхода блокировок в РФ по GFWList не проверял, теоретически это список большинства заблокированных в Китае и теперь в РФ ресурсов)
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).