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

Yus*_*sha 4 tunnel ngrok

我在我远程进入的服务器上运行ngrok.

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

提前致谢.

Hob*_*bin 18

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

config.yml

authtoken: <your-auth-token>
tunnels:
    default:
        proto: http
        addr: 80
Run Code Online (Sandbox Code Playgroud)

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

使用ngrok链接只需运行以下命令:

ngrok service install -config /path/to/your/config.yml
ngrok service start
Run Code Online (Sandbox Code Playgroud)

然后,您应该像在给定操作系统上运行的任何其他服务一样管理ngrok.

Nohup(Maco OS/Linux)

nohup命令通常默认安装在mac os和linux上.要这样运行命令:

nohup ngrok start --all --config="path/to/config.yml" &
Run Code Online (Sandbox Code Playgroud)

在屏幕上运行也应该在这里实现相同的效果.

创建Windows服务(Windows)

要创建服务,您需要下载用于从非服务可执行文件创建服务的程序.在这里,我将介绍如何使用NSSM(非吸吮服务管理器).

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

    nssm.exe install ngrok
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在出现的窗口中选择ngrok可执行文件,并将以下内容添加到参数中,然后按"安装服务".

    start --all --config="C:\path\to\my\config.yml"
    
    Run Code Online (Sandbox Code Playgroud)
  5. 现在可以从服务管理器管理该服务.要启动它,请打开管理终端并运行以下命令:

    sc start ngrok
    
    Run Code Online (Sandbox Code Playgroud)

创建systemd服务(仅限Linux - systemd)

需要root.

  1. 进入/ 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
    
    Run Code Online (Sandbox Code Playgroud)
  3. 然后运行以下命令以启动并启用该服务

    systemctl enable ngrok.service && systemctl start ngrok.service
    
    Run Code Online (Sandbox Code Playgroud)

来源:

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

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

https://nssm.cc/commands

  • 不幸的是,Ngrok Link是一个单独的产品,要花钱,所以除非您付费,否则这将无法工作。 (2认同)
  • 我已经更新了我的答案以显示这一点,并包含有关如何将 ngrok 设置为服务而不需要 ngrok 链接的说明。 (2认同)