Доступ к X-UI через SSH-туннель

Доступ к X-UI через SSH-туннель

Иногда удобнее (и безопаснее) не открывать порт панели в интернет, а зайти в X-UI через зашифрованный SSH-туннель. В этом сценарии панель остается доступной только внутри сервера, а вы подключаетесь к ней локально — как будто она работает у вас на компьютере.

Откройте терминал на своём компьютере и запустите туннель. Команда пробрасывает локальный порт 8080 к порту панели на сервере.

ssh -N -L 8080:localhost:<порт_панели_X-UI> root@<IP_вашего_сервера>

Пример:

ssh -N -L 8080:localhost:53372 root@103.106.2.208

Пока окно терминала открыто, туннель активен и панель доступна. Закрыли окно — оборвали туннель.

Что означает команда

  • -L 8080:localhost:<порт> — создать локальную «трубу»: всё, что вы откроете на http://localhost:8080, по SSH полетит на сервер и попадёт в <порт> X-UI. Важно: localhost в этой части команды — со стороны сервера, не ваш компьютер.
  • -N — не запускать удалённую команду (нам нужен только туннель).
  • root@<IP> — пользователь и адрес сервера, на котором крутится X-UI. Можно подключаться и под обычным пользователем, если у него есть доступ по SSH.

Если SSH у вас висит на нестандартном порту (например, 2222), добавьте ключ -p:

ssh -p 2222 -N -L 8080:localhost:53372 root@103.106.2.208

Если на вашем компьютере порт 8080 уже занят, просто выберите другой локальный порт, например 18080:

ssh -N -L 18080:localhost:53372 root@103.106.2.208

Тогда в браузере открывайте http://localhost:18080/….

Открываем панель в браузере

После запуска туннеля перейдите по адресу:

http://localhost:8080/<путь_к_панели>/

Пример:

http://localhost:8080/iUR0N76VKfF0aMM/

Вы увидите форму входа в X-UI. Если страница не открывается, проверьте: не занят ли локальный порт, не ошиблись ли в <порт_панели_X-UI>, и не завершилась ли SSH-сессия. Быстрый тест в терминале:

curl -I http://localhost:8080/

Ответ 200/301/302 подскажет, что туннель жив и что-то отвечает.

Важно при импорте VPN-конфига

После экспорта конфигурации из X-UI в строке подключения часто встречается localhost — это адрес вашего локального компьютера. Такой конфиг за пределами туннеля работать не будет: клиент попытается подключиться к самому себе.

Пример «как есть» (не подходит):

vless://b037ff83-dd81-4ed3-a78d-55a163d3523e@localhost:36970?type=tcp&security=reality&pbk=...#ltr9asgs0

Замените localhost на внешний IP сервера — тот самый, что вы использовали в SSH-команде (или на домен, указывающий на этот сервер).

Правильно:

vless://b037ff83-dd81-4ed3-a78d-55a163d3523e@103.106.2.208:36970?type=tcp&security=reality&pbk=...#ltr9asgs0

После правки вставляйте конфиг в VPN-клиент — подключение заработает. Параметры вроде pbk, type, security и метка в конце (#…) трогать не нужно.

Пара слов о безопасности

Лучший вариант — держать X-UI привязанным к 127.0.0.1 на сервере (без «прослушки» наружу) и заходить только через SSH-туннель. Так панель не торчит в интернет и не светит портами. Если у вас всё же есть внешний доступ (например, через реверс-прокси), проследите, чтобы стояли аутентификация, HTTPS и брандмауэрные правила. Для самого SSH предпочтительна авторизация по ключам, а не по паролю.

Завершение сессии

Когда закончите работу, вернитесь в окно терминала с туннелем и нажмите Ctrl+C — сессия аккуратно закроется. Если запускали туннель в фоновом режиме (например, с -f), найдите и завершите соответствующий процесс ssh.