即使在注销服务器时如何保持ngrok运行

时间:2018-06-04 13:22:17

标签: tunnel ngrok

我在远程服务器上运行ngrok

我是通过使用显而易见的ngrok.exe http 80开始的。问题是,当我在该特定服务器上签名时,ngrok将关闭,我将丢失我的隧道。有没有办法让我的ngrok隧道保持运行,即使我已经签署了机器?我知道如果机器关闭,我无法做任何事情来保持隧道运行,这是显而易见的。有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:13)

正如您所说的如果机器关机,将无法保持流程正常运行。有很多方法可以做到这一点。在每种方法中,我假设您已经拥有以下配置文件:

<强> config.yml

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

Ngrok Link(Windows / Mac OS / Linux,商业)

使用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(非吸吮服务管理器)。

  1. 下载可执行文件
  2. 打开CMD并cd到与nssm.exe
  3. 相同的目录中
  4. 运行以下命令:

    nssm.exe install ngrok
    
  5. 在出现的窗口中选择ngrok可执行文件,并将以下内容添加到参数中,然后按“安装服务”。

    start --all --config="C:\path\to\my\config.yml"
    
  6. 现在可以从服务管理器管理服务。要启动它,请打开管理员终端并运行以下命令:

    sc start ngrok
    
  7. 创建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
      
    4. 来源:

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

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

      https://nssm.cc/commands