Всех приветствую! Я дам два описания (так будет проще меня понять):
что сделал;
что хочу сделать.
Что сделал:
Есть арендованный VPS сервер с Ubuntu 24.02, на нём стоит AdGuard Home на 53 порту.
Для ряда выбранных мною сайтов он перезаписывает DNS запросы на IP моего же VPS, отправляя тем самым их в Sing-box, который слушает 80 и 443 порт. То есть это аналог Smart DNS от comss, который позволяет обходить региональные ограничения (геоблокировку по IP).
В 3X-UI я создал VLESS + Realitty с маскировкой под чужой сайт на 8443 порту. Так никаких конфликтов не возникает.
Теперь опишу что хочу сделать:
Я взял в аренду на год свой домен. Установил Ngnix в Ubuntu, который слушает 127.0.0.1:8080 порт, заменил HTML на свой сайт-заглушку.
После чего в 3X-UI создал VLESS + TLS с Fallbacks на мой сайт-заглушку на 443 порту чтобы провайдер, РКН или любой другой видел что я обмениваюсь данными с этим сайтом-заглушкой, например какой-нибудь example.com - решит зайти на него по HTTPS и видит работающий сайт-заглушку.
Но тут возникает проблема - я не знаю как можно заменить Sing-box, который принимал запросы на 80 и 443 порту.
Куда теперь отправлять AdGuard Home перезаписанный DNS запрос?
Концептуально я пока в тупике, но может свежий взгляд даст подсказку куда копнуть.
Грубо говоря, я хочу за сайтом-заглушкой спрятать VLESS + TLS и свой DNS сервер.
Вам нужно расположить всё это хозяйство за nginx, чтобы именно nginx слушал 443 порт, а внутри него разруливать можно как угодно.
Например: nginx слушает 443 порт, html заглушка на юникс сокете типа listen unix:/dev/shm/nginx.sock , vless-reality на 4443 порте, в настройках реалити “target”: “/dev/shm/nginx.sock”, а serverNames - ваш домен (а лучше субдомен). Sing-box слушает на 4444 порте. В конфиге nginx вы разруливаете, чтобы запросы на ваш (суб)домен example.com proxy_pass на 4443 в реалити, а всё остальное proxy_pass на 4444 в sing-box. Такой конфиг решает поставленную задачу. По сути это вариация схемы reality “steal oneself” Xray-examples/VLESS-Vision-REALITY/steal_oneself at main · chika0801/Xray-examples · GitHub
И еще, adguard в этой схеме вообще лишний, sing-box умеет из коробки перезаписывать dns запросы “на себя”. Изучайте fakeip функционал в нём FakeIP - sing-box
Почему лучше использовать субдомен в такой схеме? То есть основной домен будет для HTML заглушки, а субдомен пустить под VLESS?
Благодарю за наводку, изучу.
Предварительно перед началом ознакомления хочу спросить один вопрос.
Если я буду таки использовать AGH, то можно ли обойтись только VLESS на порту 4443, если Ngnix будет слушать 80 и 443 порт, и будет запрос сайта по HTTP? Для чего нужен будет Sing-box, если можно будет всегда отправлять на обработку DNS запрос во VLESS?
Ну не лучше, просто “гибче”. Вы примените под эту прокси-схему субдомен вида test.example.com, а сам example.com останется свободным для других задач. Вдруг вы решите потом на нём настоящий сайт захостить, добавить ещё инбаунды, или ещё что. Если не хотите, можно и сам верхний домен использовать, разницы никакой.
Не, надо выбрать что-то одно, и оно будет использоваться для маскировки реалити, и заглушка будет открываться в браузере при заходе на него.
Да, конечно можно. Я просто решил именно под исходные условия подогнать решение, тем более вдруг есть какая-то специфичная причина использовать именно sing-box. (Как вариант - fakeip)
И еще, я не пользовался 3x-ui, только голым xray-core, если там есть какие-то свои ограничения, они мне неизвестны. Но в теории это просто генератор конфиги для xray-core, так что должно быть всё норм.