Всем добрейшего времени суток и всех с наступающими.
Столкнулся с проблемой (коротко сама суть):
Имеем сервер 1 в Нидерландах, сервер 2 в Германии (от разных облачных провайдеров), на обоих был поднят 3x-ui (Xray + Reality).
На гите увидел варнинг про 3x-ui, что-то про взятку от Ирана, а я человек беспокойный, поэтому решил не разбираться в вопросе и сразу рассмотреть альтернативу.
Выбор пал на marzban из-за наличия/возможности развернуть панель + отдельно ноды.
Забегая на перед: в голове сразу появилась идея по “автоматической” балансировке через haproxy, поскольку бывает, что кто-то из облачных провайдеров может “тупить”.
В общем, поднял панель (пускай будет panel.sub.domain), развернул marzban-node (пускай будет node-1.sub.domain), в самом marzban подключил node-1.sub.domain. Все ок.
Скажу больше, после создания пользователя в marzban я с этими же кредами могу постучаться напрямую в node-1.sub.domain и все будет работать.
Часа 2-3 я терроризировал конфиг haproxy и документацию самого marzban, выставлял acceptProxyProtocol в true (в конфиге подключения xray) - ничего не получилось.
Дальше я попробовал настроить балансировку через outbounds исключительно средствами xray:
Пример outbounds
"outbounds": [
{
"protocol": "vless",
"tag": "Marzban-node-1",
"settings": {
"vnext": [
{
"address": "node-1.sub.domain",
"port": 12000,
"users": [
{
"encryption": "none",
"id": "<user_id>",
"flow": "",
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"tcpSettings": {},
"security": "reality",
"realitySettings": {
"show": false,
"dest": "docker.com:443",
"xver": 0,
"serverNames": [
"docker.com",
"www.docker.com"
],
"privateKey": "<private_key>",
"shortIds": [
"<shorts_id>"
]
}
}
},
{
"protocol": "freedom",
"tag": "DIRECT"
},
{
"protocol": "blackhole",
"tag": "BLOCK"
},
{
"protocol": "vless",
"tag": "LEAST_PING",
"settings": {
"vnext": [
{
"address": "node-1.sub.domain",
"port": 12000,
"users": [
{
"encryption": "none",
"id": "<user_id>",
"flow": "",
"security": "reality"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "docker.com:443",
"xver": 0,
"serverNames": ["docker.com", "www.docker.com"],
"privateKey": "<private_key>",
"shortIds": [
"<shorts_id>"
]
},
"leastPing": true
}
}
]
Тоже ничего не вышло.
Отсюда вопросы:
- Реально ли организовать в xray/marzban автоматическую балансировку между нодами?
- Если реально, где найти тутор для “деревянных” в виде меня?