Как сохранить работоспособность ngrok даже при выходе из сервера - PullRequest
0 голосов
/ 04 июня 2018

У меня ngrok , запущенный на сервере, к которому я удален.

Я запускаю его, используя очевидный ngrok.exe http 80.Проблема в том, что когда я выйду из системы на этом конкретном сервере, ngrok закроется, и я потеряю свой туннель.Можно ли как-нибудь поддерживать работу туннеля ngrok даже после того, как я вышла из системы?Я понимаю, что если машина выключена, я ничего не могу сделать, чтобы поддерживать работу туннеля, это очевидно.Есть идеи?

Заранее спасибо.

1 Ответ

0 голосов
/ 12 июня 2018

Как вы сказали, если машина выключена, процесс не будет поддерживаться.Есть несколько способов сделать это.В каждом из этих методов я предполагаю, что у вас уже есть следующий файл конфигурации:

config.yml

authtoken: <your-auth-token>
tunnels:
    default:
        proto: http
        addr: 80

Ngrok Link (Windows / Mac OS / Linux, Commercial)

С помощью ссылки ngrok просто выполните следующие команды:

ngrok service install -config /path/to/your/config.yml
ngrok service start

После этого вы сможете управлять ngrok так же, как и любой другой сервис, работающий в данной операционной системе.

Nohup (Maco OS / Linux)

Обычно команда nohup устанавливается по умолчанию в Mac OS и Linux.Чтобы выполнить команду следующим образом:

nohup ngrok start --all --config="path/to/config.yml" &

Запуск на экране также должен привести к тому же эффекту.

Создание службы Windows (Windows)

СозданиеСервис, вам нужно будет скачать программу для создания сервисов из не сервисных исполняемых файлов.Здесь я собираюсь сделать это с помощью NSSM (Non-Sucking Service Manager).

  1. Загрузите исполняемый файл
  2. Откройте CMD и cd в том же каталоге, что и nssm.exe
  3. Выполните следующую команду:

    nssm.exe install ngrok
    
  4. выберите исполняемый файл ngrok в появившемся окне и добавьте следующее к аргументам, затем нажмите 'Установить службу '.

    start --all --config="C:\path\to\my\config.yml"
    
  5. Службой теперь можно управлять из диспетчера служб.Чтобы запустить его, откройте административный терминал и выполните следующее:

    sc start ngrok
    

Создание службы systemd (только для Linux - systemd)

Требуется root.

  1. cd в / etc / systemd / system /

  2. Создайте следующий файл:

    ngrok.service

    [Unit]
    Description=Ngrok
    After=network.service
    
    [Service]
    type=simple
    User=<your_user_name>
    WorkingDirectory=/home/<your_user_name>
    ExecStart=/usr/bin/ngrok start --all --config="/path/to/config.yml"
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
  3. Затем выполните следующую команду, чтобы запустить и включить службу

    systemctl enable ngrok.service && systemctl start ngrok.service
    

Источники:

https://ngrok.com/docs/ngrok-link#service

https://www.freedesktop.org/software/systemd/man/systemd.unit.html

https://nssm.cc/commands

...