📜  如何使 ngrok 未过期 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:23:49.174000             🧑  作者: Mango

如何使 ngrok 未过期 - Shell-Bash

如果你是一个开发者或者管理员,常常需要用到 ngrok 来实现内网穿透,但是 ngrok 限制了免费使用的时间,如何保证不过期呢?本文将介绍如何在 Shell-Bash 环境下使用定时任务自动更新 ngrok。

1. 下载 ngrok

首先需要下载 ngrok,可以到官网下载最新的版本。下载完成后解压:

$ unzip /path/to/ngrok.zip -d /path/to/extract
2. 创建 ngrok 的账号

使用 ngrok 需要先在官网上 注册一个账号,并获取 auth token。

3. 安装 jq

需要使用 jq 命令来解析 json 数据,如果没有安装可以通过以下命令进行安装:

$ sudo apt-get install -y jq
4. 编写更新脚本

使用 curl 命令获取当前最新的 ngrok 版本号和下载链接,然后使用 wget 命令下载更新,并备份原有的版本。需要注意的是,在使用 curl 获取数据的时候,需要将 auth token 添加到 header 中。

#!/bin/bash

TOKEN=<your_auth_token>
NGROK_DIR=/path/to/extract
NGROK_BACKUP_DIR=/path/to/backup
NGROK_CUR_VER=$(curl -s https://api.ngrok.com/api/2/version | jq -r '. | select(.arch == "amd64") | .version')
NGROK_NEW_VER=$(curl -s https://ngrok.com/download | grep -oP "https://bin.equinox.io/c/.*?/.*?_linux_amd64.zip" | cut -d "/" -f6 | cut -d "_" -f1)
if [ "$NGROK_CUR_VER" != "$NGROK_NEW_VER" ]; then
    wget https://bin.equinox.io/c/$NGROK_NEW_VER/ngrok-stable-linux-amd64.zip -O /tmp/ngrok.zip
    mv $NGROK_DIR/ngrok $NGROK_BACKUP_DIR/ngrok-$NGROK_CUR_VER
    unzip /tmp/ngrok.zip -d $NGROK_DIR
    rm /tmp/ngrok.zip
    chmod +x $NGROK_DIR/ngrok
fi
exit 0
5. 添加定时任务

使用 crontab 命令添加定时任务,每天凌晨检查一次更新:

$ crontab -e

然后添加以下行代码:

0 0 * * * /path/to/update_ngrok.sh >/dev/null 2>&1

至此,定时任务就已经添加完成,以后不需要手动更新 ngrok 了。