x25519, UUID, shortId — как их получить

Для человека, который не сидит на Linux, есть один крайне неприятный сюрприз в гайдах по настройке Марципана, а именно — пункт с генерацией приватного и публичного ключей и UUID.

Из официальной инструкции
Из официальной инструкции

Дело в том, что команда

docker exec marzban-marzban-1 xray x25519

...может вернуть неожиданный ответ:

Error: No such container: marzban-marzban-1

Я честно пытался нагуглить другие, более подробные гайды, чтобы пройти этот пункт и получить заветные ключи, но всюду сталкивался с одним и тем же копипастом:

Из другой инструкции на Хабре. Вы уже догадались, что оно не работает
Из другой инструкции на Хабре. Вы уже догадались, что оно не работает

В итоге было решено разобрать первый пример. Смотрите:

docker exec marzban-marzban-1 xray x25519

Из этой команды следует, что у нас в системе должен быть некий Docker-контейнер с названием "marzban-marzban-1" (не берите в голову, это не столь важно, если не знаете, что за контейнеры). Для того, чтобы понять, есть ли на самом деле такой контейнер, я выполнил следующую команду:

sudo docker ps -a

Она выведет список docker-контейнеров. Выглядит это так:

x25519, UUID, shortId — как их получить

Видите последний столбец "NAMES"? На второй строке отображается имя нужного нам контейнера, и оно "marzban_marzban_1". Оно НЕ совпадает с именем из нашей команды, которую мы пытались выполнить чуть выше (в комментариях меня поправили). И что же делать? Всё просто: попробуйте написать правильное название контейнера (конкретно в нашем примере это marzban_marzban_1 с нижними подчёркиваниями). Либо можно написать не имя контейнера, а его идентификатор, т.е. значение из первого столбца, которое я замазал на скриншоте выше. Просто выделяем этот id на второй строчке, копируем его (правый клик мышкой) и вставляем в команду вместо "marzban-marzban-1". Получается такая команда:

docker exec e8hs45k54 xray x25519

...где "e8hs45k54" — id вашего контейнера. Вуаля! Вы получили ключи.

Аналогично генерируете UUID, указав тот же id контейнера в команде:

docker exec e8hs45k54 xray uuid

А для получения shortId воспользуемся командой из официальной инструкции:

openssl rand -hex 8

Всё. Публичный и приватный ключи x25519, UUID и shortId сгенерированы.

Надеюсь, этот пост поможет яростно гуглящему анону, и он сможет настроить Марципан.

1
15 комментариев

А зачем id, если просто можно актуальное имя контейнера тут же через docker ps увидеть? Оно же и есть, просто через нижние пробелы вместо дефисов.

Тут же вся проблема в несоответствии документации с релизом.

1

Я не уверен, что прав, но ввод правильного имени так же не сработал. Может, действительно затупил

А смысл таких приколов от марзбана если он подразумевается как конкурент 3x-ui но с более простой настройкой, сувать его в докер наверное не входит в такую простоту, хотя кому как

1

Не могу сказать. Но не стал ставить иксы, т.к. на странице XTLS чётко написано, что оно скомпрометировано, и лучше обойти эту панель стороной

Можно даже не весь айди контейнера вводить, хватит первых 2-3 уникальных символа

1

годно, спасибо)