Привет всем.
Давно пользуюсь OPNsense и столкнулся с тем, что для Xray-core не было нормального плагина — приходилось руками редактировать JSON, перезапускать сервисы через SSH и следить за всем через консоль. Решил это исправить и написал полноценный плагин с GUI.
Что это такое
os-xray — плагин для OPNsense, который добавляет управление Xray-core (VLESS+Reality) + tun2socks прямо через веб-интерфейс роутера. Появляется пункт VPN → Xray, откуда можно настроить подключение, включить/выключить сервис и видеть его статус в реальном времени.
Стек такой:
xray-core (VLESS+Reality) → SOCKS5 127.0.0.1:10808 → tun2socks → TUN-интерфейс → OPNsense Gateway
Это позволяет использовать нативную селективную маршрутизацию OPNsense через Firewall Aliases + Rules — без всяких костылей с policy routing вручную.
Ключевые возможности
Импорт VLESS ссылки — вставляешь ссылку вида vless://UUID@host:443?security=reality&... и нажимаешь "Parse & Fill". Все поля заполняются автоматически.
Автоимпорт существующего конфига — если xray-core и tun2socks уже настроены вручную, установщик сам найдёт конфиги /usr/local/etc/xray-core/config.json и /usr/local/tun2socks/config.yaml, разберёт их и загрузит в GUI. После установки поля уже заполнены.
Статус в реальном времени — прямо на странице видно работает ли xray-core и tun2socks, обновляется каждые 10 секунд.
Полноценный uninstall — sh install.sh uninstall останавливает сервисы и чисто удаляет все файлы плагина.
Установка
Бинарники xray-core и tun2socks нужно установить самостоятельно (ссылки есть в README). Дальше:
shfetch -o /tmp/os-xray.tar https://github.com/MrTheory/os-xray/releases/latest/download/os-xray.tar
cd /tmp && tar xf os-xray.tar && cd os-xray
sh install.sh
После этого Ctrl+F5 в браузере — и VPN → Xray уже в меню.
Настройка после установки
VPN → Xray → Instance → Import VLESS link → Parse & Fill
General → Enable Xray ✓
Apply
Interfaces → Assignments → назначить TUN-интерфейс proxytun2socks0, задать статический IP (например 10.255.0.1/30)
System → Gateways → добавить шлюз, Gateway IP = IP вашего TUN-интерфейса, Far Gateway ✓, мониторинг выключить
Firewall → Aliases → список IP/доменов которые нужно пускать через VPN
Firewall → Rules → LAN → правило с gateway = PROXYTUN_GW
MSS Clamping для Xray не нужен — это особенность WireGuard/AmneziaWG, здесь всё работает без него.
Совместимость
Тестировалось на OPNsense 26.x / FreeBSD 14.3-RELEASE amd64.
Ссылки
GitHub: https://github.com/MrTheory/os-xray
Там же подробный README с полным описанием всех шагов и устранением неполадок.
Буду рад вопросам и обратной связи. Если что-то не работает на вашей версии OPNsense — пишите сюда или открывайте issue на GitHub.