如何在注销服务器时保持 ngrok 运行
How to keep ngrok running even when signing off of a server
我在远程访问的服务器上有 ngrok 运行。
我用显而易见的方式开始,ngrok.exe http 80
。问题是,当我在该特定服务器上注销时,ngrok 将关闭,我将失去我的隧道。有没有办法即使我已经注销机器也可以保留 ngrok 隧道 运行?我知道如果机器被关闭,我无法做任何事情来保留隧道 运行,这是显而易见的。有什么想法吗?
提前致谢。
如您所说,如果 machine 关闭,则无法保持进程 运行ning。有许多方法可以做到这一点。在这些方法中的每一种中,我假设您已经拥有以下配置文件:
config.yml
authtoken: <your-auth-token>
tunnels:
default:
proto: http
addr: 80
Ngrok Link(Windows/Mac OS/Linux,商业)
使用 ngrok link 只需 运行 以下命令:
ngrok service install -config /path/to/your/config.yml
ngrok service start
然后您应该能够像管理给定操作系统上的任何其他服务一样管理 ngrok 运行ning。
Nohup(Maco OS/Linux)
nohup 命令通常默认安装在 mac os 和 linux 上。 运行 命令如下:
nohup ngrok start --all --config="path/to/config.yml" &
运行在一个画面里应该也能达到同样的效果。
正在创建 Windows 服务(Windows)
要创建服务,您需要下载用于从非服务可执行文件创建服务的程序。在这里,我将介绍如何使用 NSSM(Non-Sucking Service Manager)执行此操作。
- 下载可执行文件
- 打开 CMD 并 cd 进入与 nssm.exe
相同的目录
运行 以下命令:
nssm.exe install ngrok
select 出现的 window 中的 ngrok 可执行文件并将以下内容添加到参数中,然后按 'Install service'。
start --all --config="C:\path\to\my\config.yml"
现在可以从服务管理器管理该服务。要启动它,请打开管理终端并 运行 以下内容:
sc start ngrok
创建 systemd 服务(Linux - 仅限 systemd)
需要root权限。
cd 到 /etc/systemd/system/
创建以下文件:
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
然后运行下面的命令启动并启用服务
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
我在远程访问的服务器上有 ngrok 运行。
我用显而易见的方式开始,ngrok.exe http 80
。问题是,当我在该特定服务器上注销时,ngrok 将关闭,我将失去我的隧道。有没有办法即使我已经注销机器也可以保留 ngrok 隧道 运行?我知道如果机器被关闭,我无法做任何事情来保留隧道 运行,这是显而易见的。有什么想法吗?
提前致谢。
如您所说,如果 machine 关闭,则无法保持进程 运行ning。有许多方法可以做到这一点。在这些方法中的每一种中,我假设您已经拥有以下配置文件:
config.yml
authtoken: <your-auth-token>
tunnels:
default:
proto: http
addr: 80
Ngrok Link(Windows/Mac OS/Linux,商业)
使用 ngrok link 只需 运行 以下命令:
ngrok service install -config /path/to/your/config.yml
ngrok service start
然后您应该能够像管理给定操作系统上的任何其他服务一样管理 ngrok 运行ning。
Nohup(Maco OS/Linux)
nohup 命令通常默认安装在 mac os 和 linux 上。 运行 命令如下:
nohup ngrok start --all --config="path/to/config.yml" &
运行在一个画面里应该也能达到同样的效果。
正在创建 Windows 服务(Windows)
要创建服务,您需要下载用于从非服务可执行文件创建服务的程序。在这里,我将介绍如何使用 NSSM(Non-Sucking Service Manager)执行此操作。
- 下载可执行文件
- 打开 CMD 并 cd 进入与 nssm.exe 相同的目录
运行 以下命令:
nssm.exe install ngrok
select 出现的 window 中的 ngrok 可执行文件并将以下内容添加到参数中,然后按 'Install service'。
start --all --config="C:\path\to\my\config.yml"
现在可以从服务管理器管理该服务。要启动它,请打开管理终端并 运行 以下内容:
sc start ngrok
创建 systemd 服务(Linux - 仅限 systemd)
需要root权限。
cd 到 /etc/systemd/system/
创建以下文件:
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
然后运行下面的命令启动并启用服务
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