蒹葭苍苍,白露为霜。
所谓伊人,在水一方。

通过脚本提升Ngrok服务的稳定性-崩溃后自动重启

Ngrok是一个高可玩性的工具,在云服务器上搭建完Ngrok服务后,通过客户端的部署,这个工具可以实现内网穿透。内网穿透,你懂的,可以干好事也能干坏事。通常,我们都干。

网上一堆Ngrok云服务器部署教程,例如这个, 民用版的Ngrok 貌似不再更新了,它有一个bug,就是用一段时间后会自动奔溃,导致服务不再可用。这时,需要在云服务器上手动重新启动Ngrok服务。本文提供一种通过脚本自动判断ngrok服务是否存在,如果不存在,则重新启动。具体如下:

一、检查及重启服务代码(python),checkprocess.py

# coding:utf-8
import os
import datetime
import time
from sendmail import send_mail

def check_process():
    process="./cron.lock"
    os.system("ps -ef|grep ngrokd|grep -v grep >%s" % process)
    if not(os.path.getsize(process)):
        send_mail(msg_title='ngrok 停止运行了',smsg='ngrok进程停止')
        os.system('/path/to/ngrok.sh')  
    else:
        f=open('./cron.lock', "r+")
        f.truncate()

if __name__ == '__main__':
    i = 0
    while True:
        print ('check times : %s' % str(i))
        check_process()
        time.sleep(60)
        i+=1

上面代码中,/path/to/ngrok.sh 是下文所述脚本的路径。send_mail是一个发送邮件到邮箱的方法。你应该自己去定义。

二、ngrok启动脚本ngrok.sh

nohup /ngrok/ngrok/bin/ngrokd -tlsKey="/ngrok/ngrok/assets/server/tls/snakeoil.key" \
-tlsCrt="/ngrok/ngrok/assets/server/tls/snakeoil.crt" -domain="你的域名" \
 -httpAddr=":8081" -httpsAddr=":8082" -tunnelAddr=":8083" >/dev/null 2>&1 &

以上仅供参考,直接复制是无效的,需要根据具体情况具体修改。

三、长期运行

一般SSH连接到服务器,开一个Screen,然后 python3 checkprocess.py 然后Ctrl+A+D 后台掉就可以。

赞(0) 打赏
未经允许不得转载:酷居科技 » 通过脚本提升Ngrok服务的稳定性-崩溃后自动重启

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

锦瑟无端五十弦,一弦一柱思华年

酷居科技联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏