it-swarm-es.com

Cómo mantener ngrok ejecutándose incluso al cerrar sesión en un servidor

Tengo ngrok ejecutándose en un servidor remoto.

Lo comienzo usando lo obvio, ngrok.exe http 80. El problema es que cuando cierro la sesión en ese servidor en particular, ngrok se cerrará y perderé mi túnel. ¿Hay alguna manera de mantener el túnel ngrok funcionando incluso cuando haya cerrado la sesión de la máquina? Entiendo que si la máquina se apaga, no hay nada que pueda hacer para mantener el túnel en funcionamiento, eso es obvio. ¿Algunas ideas?

Gracias por adelantado.

4
Yusha

Como ha dicho Si la máquina se apaga, no habrá forma de mantener el proceso en ejecución. Hay varios métodos para hacer esto. En cada uno de estos métodos, supongo que ya tiene el siguiente archivo de configuración:

config.yml

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

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

Con el enlace ngrok simplemente ejecute los siguientes comandos:

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

Entonces debería poder administrar ngrok como lo haría con cualquier otro servicio que se ejecute en su sistema operativo dado.

Nohup (Maco OS/Linux)

El comando Nohup normalmente viene instalado de manera predeterminada en mac os y linux. Para ejecutar el comando como tal:

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

Correr en una pantalla también debería lograr el mismo efecto aquí.

Crear un servicio de Windows (Windows)

Para crear el servicio, deberá descargar un programa para crear servicios desde ejecutables que no sean de servicio. Aquí voy a ver cómo hacer esto con NSSM (Administrador de servicios sin succión).

  1. Descargar el ejecutable
  2. Abra CMD y cd en el mismo directorio que nssm.exe
  3. Ejecute el siguiente comando:

    nssm.exe install ngrok
    
  4. seleccione el ejecutable ngrok en la ventana que aparece y agregue lo siguiente a los argumentos, luego presione 'Instalar servicio'.

    start --all --config="C:\path\to\my\config.yml"
    
  5. El servicio ahora se puede administrar desde el administrador del servicio. Para iniciarlo, abra una terminal de administrador y ejecute lo siguiente:

    sc start ngrok
    

Crear un servicio systemd (Linux - solo systemd)

Requiere raíz.

  1. cd en/etc/systemd/system /

  2. Crea el siguiente archivo:

    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. Luego ejecute el siguiente comando para iniciar y habilitar el servicio

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

fuentes:

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

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

https://nssm.cc/commands

19
Hobbid Hobbin