Перейти к содержанию

Поиск

Показаны результаты для тегов 'haproxy'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • OpeNode
    • Новости
    • Общение
  • Статьи и обсуждения
    • Docker Контейнеры
    • Прокси и Виртуальный Частные Сети
    • Сетевое оборудование
    • 3D-моделирование и 3D-печать
    • WEB технологии и их применение
    • Операционные системы и Софт
    • Домашняя инфраструктура
    • Программирование и архитектура
    • Искусственный интеллект
    • OSINT
  • Клуб DWG Проблемы сборок
  • Клуб DWG Сборки DWG
  • Zero Trust Network Темы
  • Zero Trust Network OpenZITI
  • Marzban Инструкции
  • Marzban Продвинутые инструкции
  • Marzban Вопросы и проблемы
  • Marzban Общение
  • BookWorm Общение
  • BookWorm Поиск материалов
  • Общий клуб - ОБЩЕНИЕ Предложения по КЛУБАМ
  • Панели управления VPN и Proxy 3x-UI/X-ui
  • Панели управления VPN и Proxy Другие решения

Категории

  • Полезные файлы
    • CMS
  • Книги - общий раздел
    • Хакинг и безопасность [FILES]
    • СУБД [FILES]
    • Сети / VoIP [FILES]
    • Веб-дизайн и программирование [FILES]
    • Mac OS; Linux, FreeBSD и прочие *NIX [FILES]
  • 3D-модели для печати
  • Marzban Файлы
  • BookWorm Книги

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


Обо мне


Пол

Найдено 1 результат

  1. Всем привет! Пройдемся по теории. Один из основных способов маскировки, это использование 443 порта и использование Reality Но, чтобы не светить ваш сервер, к которому подключается клиент, он тоже должен работать на этом порту. А еще, чтобы и ваша панель и страница подписок - тоже должны быть на 443 порту. А самое главное, в рамках одного сервера, вы можете разделить по поддоменам панель и страницу подписки. Перейдем к делу. С этой задачей, удобно для нас всех поможет справиться haproxy. Это своеобразные аналог nginx. Но по мне, немного попроще. Задача его обрабатывать внутренние порты, и с одного внешнего (443) перенаправлять на внутренние в соответствии с тем, что требует входящее соединение. На самом деле, это лучше делать этапом 0 в создании сервера на Marzban. 1. Установим haproxy. apt install -y haproxy 2. Сразу настроим конфиг: nano /etc/haproxy/haproxy.cfg 3. По умолчанию видим такой набор: Но нам этого мало. 3.1. Добавляем в конец документа: listen front mode tcp bind *:443 tcp-request inspect-delay 5s tcp-request content accept if { req_ssl_hello_type 1 } use_backend panel if { req.ssl_sni -m end panel.domain.com } use_backend sub if { req.ssl_sni -i end sub.other-domain.com } use_backend reality if { req.ssl_sni -m end discord.org } default_backend reality backend panel mode tcp server srv1 127.0.0.1:10000 backend sub mode tcp server srv1 127.0.0.1:10000 backend reality mode tcp server srv1 127.0.0.1:12000 send-proxy Сразу давайте разберемся в понятиях этого содержимого 3.2. Если у вас каждая нода - как отдельный инбаунд, то создавать придется несколько backend и frontend, например так. А еще по той простой причине что для каждого сервера нужно искать свой SNI (я писал об этом в прошлой статье) use_backend reality-1 if { req.ssl_sni -i end telegram.org } use_backend reality-2 if { req.ssl_sni -i end discordapp.com } use_backend reality-3 if { req.ssl_sni -i end cdn.debian.org} и вторая часть: backend reality-1 mode tcp server srv1 127.0.0.1:12001 send-proxy-v2 tfo backend reality-2 mode tcp server srv1 127.0.0.1:12002 send-proxy-v2 tfo backend reality-3 mode tcp server srv1 127.0.0.1:12003 send-proxy-v2 tfo 3.3. Проброс сертификатов. Чтобы наши сертификаты, пробрасывались ко всем соединениям, нам нужно указать корректные пути: ca-base /var/lib/marzban/certs/fullchain.pem crt-base /var/lib/marzban/certs/key.pem 3.3.1. А что если у вас другой домен 2-го уровня для вашей сабки? Да ничего страшного, мы пробрасываем для него отдельный путь для сертификатов на фронтенд: frontend front_sub bind *:443 ssl crt-list /root/.acme.sh/sub_other_example.com/sub_other_domain.com.pem mode tcp При условии что мы указали примерно так: use_backend sub if { req.ssl_sni -i end sub.other-domain.com } Сохранили документ. Перезапустили сервис: systemctl restart haproxy 4. Настройка Marzban .env nano /opt/marzban/.env Опишу ключевые моменты. 4.1. Меняем адрес прослушивания. Почему это важно? Когда параметр UVICORN_HOST указан со значением 0.0.0.0 - это значит, что он будет слушать любое обращение по нему. Поэтому мы указываем только слушать внутренний порт, который уже указывали в haproxy Указываем соответственно и наш порт. из конфига выше. Не забудьте в контейнер прогрузить свои сертификаты: UVICORN_SSL_CERTFILE = "/var/lib/marzban/certs/fullchain.pem" UVICORN_SSL_KEYFILE = "/var/lib/marzban/certs/key.pem" после изменений, делаем: marzban restart -n 5. Настройка Xray Config В принципе, мы меняем только порт и указываем конкретный listen. Остальные параметры могут остаться без изменений. Учтите, что ваши параметры reality должны совпадать с haproxy { "tag": "VLESS_TCP_REALITY", "listen": "127.0.0.1", "port": 12000, "protocol": "vless", "settings": { "clients": [], "decryption": "none" }, "streamSettings": { "network": "tcp", "tcpSettings": { "acceptProxyProtocol": true }, "security": "reality", "realitySettings": { "show": false, "dest": "discord.org:443", "xver": 0, "serverNames": [ "discord.org" ], "privateKey": "XYX6m0Mj3faUstoEm5NBdegeXkHG6ZB78xzBv2n3ZUA", "shortIds": [ "6ba85179e30d4fc1" ] } }, "sniffing": { "enabled": true, "destOverride": [ "http", "tls" ] } } А теперь главный момент! Заходим в настройки хоста, и принудительно прописываем 443 порт! на этом все. Аналогичный конфиг вы должны будет поднять на каждой используемой NODE (узле) Если вы используете только TLS с CDN, например vless/vmess/trojan WebSocket + CDN, то вам нужно будет использовать опцию fallback xray-core (через создание fallback инбаунда) Если нужна будет статья на эту тему, можно будет написать, но позже. Но нужно понимать, что fallback будет требовать дополнительных ресурсов!
×
×
  • Создать...

Важная информация

Вы принимаете наши Условия использования, Политика конфиденциальности, Правила. А также использование Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.

Яндекс.Метрика