Комрады привет! У меня связка Xray+Marzban. Как добавить xhttp, gprc? Пока не нашёл гайда именно под это, Сейчас нормально работает стандартный TCP+reality. Есть домен, заходя на который попадаю в панель Марзбан. Веб-сервер Caddy. Мне всё это помогали за ручку настроить. Почти год работает ок, но в свете новостей с блоком vless, хочу предусмотрительно настроить запасные варианты.
Гляньте плиз где тут ошибки: в инбаундах, в Caddy или еще где. Куда копать? Насколько я понимаю, соединяться с VPS по любому порту, кроме 443 это палево, поэтому по совету чатжпт прописали в Caddy маршрутизацию 443 порта на внутренние порты под каждый инбаунд соответственно. Чёт мне кажется тут проблема, но я профан и не знаю как ее решить. А чатжпт считает что все ок, отступы и синтаксис тоже проверяли.
Вот конфиг Марзбана.(одновременно вставить “как есть” и спрятать в спойлер как я понял нельзя на форуме. Поэтому так.
{
"log": {
"loglevel": "warning"
},
"routing": {
"rules": [
{
"ip": [
"geoip:private"
],
"outboundTag": "BLOCK",
"type": "field"
},
{
"type": "field",
"outboundTag": "WARP",
"domain": [
"geosite:spotify"
]
}
]
},
"inbounds": [
{
"tag": "VLESS + TCP + REALITY",
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {},
"security": "reality",
"realitySettings": {
"show": false,
"dest": "127.0.0.1:20000",
"xver": 0,
"serverNames": [
"мой домен рабочий"
],
"privateKey": "****",
"publicKey": "*****",
"shortIds": [
"******"
]
}
},
"sniffing": {
"enabled": true,
"routeOnly": true,
"destOverride": [
"http",
"tls"
]
}
},
{
"tag": "VLESS XHTTP REALITY",
"listen": "0.0.0.0",
"port": 1443,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "xhttp",
"xhttpSettings": {
"mode": "auto"
},
"security": "reality",
"realitySettings": {
"show": false,
"dest": "127.0.0.1:20000",
"xver": 0,
"serverNames": [
"мой домен"
],
"privateKey": "***",
"SpiderX": "/",
"shortIds": [
"****"
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
}
},
{
"tag": "VLESS GRPC REALITY",
"listen": "0.0.0.0",
"port": 2443,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "grpc",
"grpcSettings": {
"serviceName": "grpc-service"
},
"security": "reality",
"realitySettings": {
"show": false,
"dest": "127.0.0.1:20000",
"xver": 0,
"serverNames": [
"мой домен"
],
"privateKey": "***",
"SpiderX": "/grpc",
"shortIds": [
"*****"
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "DIRECT",
"settings": {
"domainStrategy": "ForceIPv4"
}
},
{
"protocol": "blackhole",
"tag": "BLOCK"
},
{
"tag": "WARP",
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 30000,
"users": []
}
]
}
}
]
}
Вот конфиг Caddy
{
https_port 20000
default_bind 127.0.0.1
servers {
listener_wrappers {
proxy_protocol {
allow 127.0.0.1/32
}
tls
}
}
auto_https disable_redirects
}
922025.xyz {
@marzban expression path('/marzban/*') || path('/subscription/*') || path('/api/*') || path('/docs/*')
handle @marzban {
reverse_proxy 127.0.0.1:8000
}
@reality_tcp {
protocol tls
}
reverse_proxy @reality_tcp localhost:443
@reality_xhttp {
path /xhttp*
}
reverse_proxy @reality_xhttp localhost:1443 {
header_up Host {host}
header_up X-Real-IP {remote_host}
}
@reality_grpc {
protocol grpc
path /grpc*
}
reverse_proxy @reality_grpc localhost:2443 {
header_up grpc-timeout 30s
header_up grpc-encoding gzip
}
}
root * /var/www/caddy
file_server
redir /index.html /
log {
output file /var/lib/caddy/access.log {
roll_size 100mb
roll_keep 5
}
}
}
https://ip_мой_vps {
tls internal
respond * 204
}
:80 {
bind 0.0.0.0
respond * 204
}
http://мой домен, http://мой домен {
bind 0.0.0.0
redir https://мой домен{uri} permanent
}
https://мой домен{
redir https://мой домен/var/www/caddy{uri} permanent
}
После всех этих движений перезагружал Докер с Марзом, и Caddy. Далее в Марзе создал два новых тестовых юзера, для который оставил только по одной галке инбаунда с xhttp, и отдельно grpc. Типо вот так:

Пробую в разынех клиентах добавлять эти подписки по очереди. И ни один не работает. Пробовал: Prizrak-Box, Clash-verge-rev, V2RayN, Neboray. Сам я обычно пользуюсь только первыми двумя. Клиенты подписку добавляют и в названиях прокси видно “xhttp”, “grpc”. Включаю хоть Тюн, хоть Систем Прокси - не работает инет вообще. В логах ошибки соединения и таймацты пишет. До сервера пинг не показывает.
При этом всем старая подписка с TCP-Reality работает нормально. Версии Xray v25.3.31, Marzban 0.8.4, то есть все последнее и эти траснпорты полностью должны поддерживать.
Куда копать, что не так?