Перейти к основному содержимому

Служба proximamp: туннели после перезагрузки сервера

Поставьте службу proximamp: она открывает туннели из файла proximamp.yml вместе с компьютером, даже если в систему никто не вошёл, и перезапускается сама после сбоя. Нужны права администратора: в Linux sudo, в Windows терминал, открытый от имени администратора.

Поставьте службу​

  1. Опишите туннели в файле proximamp.yml. Служба — отдельное устройство аккаунта со своей памятью адресов: чтобы она открыла туннель на адресе, который у вас уже есть, впишите его в address: и остановите команду, которая сейчас держит этот адрес.

  2. Поставьте службу (в Windows без sudo, сначала перейдя командой cd в папку с proximamp.yml и key.txt):

    sudo proximamp service install -c proximamp.yml
    sudo proximamp service install -c proximamp.yml --key-stdin < key.txt # или ключом устройства

    В PowerShell ключ из файла передаётся так:

    Get-Content key.txt | proximamp service install -c proximamp.yml --key-stdin

    Первая команда один раз спросит логин и пароль ProximaMP: вход хранится у службы, а не у вас. Вторая подключает службу ключом устройства. Входа через VK ID, Яндекс ID или с телефона у службы нет: если у аккаунта нет пароля, подключите её ключом или задайте пароль в приложении (способы входа) или командой на компьютере с браузером:

    proximamp password set

    Если sudo отвечает sudo: proximamp: command not found (так бывает в RHEL, AlmaLinux, Rocky Linux и Oracle Linux и с Node.js из nvm или fnm), набирайте sudo env "PATH=$PATH" proximamp вместо sudo proximamp здесь и в остальных командах службы, например:

    sudo env "PATH=$PATH" proximamp service install -c proximamp.yml

Без терминала, например в скрипте, передайте пароль через --password-stdin (пароль — в переменной PASS, вместо alice — ваш логин):

printf '%s\n' "$PASS" | sudo proximamp service install alice -c proximamp.yml --password-stdin

В PowerShell, в терминале администратора:

$env:PASS | proximamp service install alice -c proximamp.yml --password-stdin

Поменять, войти снова, удалить​

Чтобы поменять туннели службы или закрыть один из них, поправьте proximamp.yml и поставьте службу снова:

sudo proximamp service install -c proximamp.yml

Остальное:

sudo proximamp service login # вход службы истёк
sudo proximamp service inspect # запросы к http-ссылке службы
sudo proximamp service access <адрес> # защита туннеля службы
sudo proximamp service uninstall # удалить службу

Ошибку в proximamp.yml установка назовёт ещё до того, как что-то поменяет. В вашем proximamp ls туннели службы стоят «в другом месте», и proximamp close их не закрывает. Их защиту меняет proximamp service access с теми же словами, что у proximamp access, и адресом из sudo proximamp service status. Инспектор службы тот же, что у команды, но ссылку на страницу он только печатает: откройте её сами. Удалённая служба выходит из аккаунта, а её вход и память адресов удаляются. Чтобы перевести службу на другой аккаунт, удалите её и поставьте снова.

Если ProximaMP отказал туннелю службы (например, аккаунт уже держит столько адресов, сколько даёт тариф), служба не останавливается: журнал говорит, что сделать, а туннель служба пробует открыть снова сама, до раза в 5 минут.

Где служба​

  • Linux: служба systemd proximamp от системного пользователя proximamp-cli, без прав root. Журнал службы:

    sudo journalctl -u proximamp

    В системе без systemd, например в WSL, где он не включён, служба не ставится: «в этой системе нет systemd: proximamp service работает через него». В WSL включите systemd по инструкции Microsoft.

  • Windows: служба proximamp от учётной записи NT SERVICE\proximamp, без прав администратора. Её конфиг, вход и журнал лежат в C:\ProgramData\proximamp. Последние строки журнала, в терминале администратора:

    Get-Content C:\ProgramData\proximamp\logs\proximamp.log -Tail 50

Служба работает на своей копии программы. Как перевести её на новую версию, написано на странице «Как обновить proximamp».

Проверьте​

Перезагрузите компьютер и посмотрите состояние службы:

sudo proximamp service status

Служба работает, и у каждого туннеля из файла есть адрес.