Windows&Linux下設置ngrok開機自啟動

前言

我們在使用ngrok做內網穿透時,總是希望是它在開機時自己啟動,但是官方也沒有提供明確的方法。總的來說,Windows下增加開機啟動項是非常簡單的,而Linux系統下是比較懵逼的,因為Linux存在很多不同社區的不同版本,他們系統的文件目錄以及系統默認命令都不完全一樣。 我自己前段時間折騰過,研究了一下這個問題,現以ngrok客戶端為例,將我的解決方案公布出來,以便大家參考!

解決方案

Windows平台下

測試系統:Windows10

  1. 使用記事本編輯,粘貼如下代碼,your id改成自己的id,多個id用逗號(半形)隔開,另存為文件「Ngrok啟動工具.bat」;

    @echo OFFcolor 0aTitle Ngrok啟動工具Mode con cols=109 lines=30:STARTECHO.Echo ==========================================================================ECHO.Echo Ngrok啟動工具ECHO.Echo ==========================================================================Echo.echo.ngrok.exe clientid your id

  2. 用本機文件資源管理器打開路徑「C:UsersWHUERAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup」,其中「WHUER」為我的系統登錄賬號的用戶名,你們替換成自己的。將第一步修改的bat文件,右鍵-創建快捷方式,然後將這個快捷方式複製一份到上述文件夾中即可(此操作會引發部分殺毒軟體警告,請無視,放行即可加入開機啟動項)。

Linux平台下

測試系統:Ubintu 16.04

  1. 我的ngrok客戶端放在「/home/serverdata」目錄下,在該目錄下新建一個名為「ngrok.sh」的啟動腳本,內容如下,保存之;

    cd /home/serverdata #此處更改為你自己的ngrok客戶端的文件路徑nohup ./ngrok clientid your id >/dev/null 2>&1 #your id改成自己的id,多個id用逗號(半形)隔開

  2. 接著我們來把ngrok啟動腳本製作成系統服務。在 /etc/init.d目錄下新建一個服務項目(其實就是新建一個名為「ngrok」的文件),代碼如下:

    #!/bin/sh#chkconfig:2345 70 30#description:ngrokngrok_path=/home/serverdata #此處更改為你自己的啟動腳本的文件路徑case "$1" in start) echo "start ngrok service.." sh ${ngrok_path}/ngrok.sh ;; *) exit 1 ;;esac

  3. 保存上一步的文件,並賦予至少755的許可權,shell命令如下:

    sudo chmod 755 /etc/init.d/ngrok

  4. 接下來我們要註冊ngrok的自啟動服務,shell命令如下:

    cd /etc/init.dsudo update-rc.d ngrok defaultssudo update-rc.d start 70 2 3 4 5

    註:如果提示找不到程序,請使用sudo apt-get install sysv-rc-conf自行安裝,安裝前建議先更新系統,sudo apt-get update。另外,其他Linux發行版本,如果有問題,可使用如下命令嘗試(下同,做相應替換):

    sudo chkconfig --add ngrok

  5. 測試服務是否能啟動成功,shell命令如下:

    sudo service ngrok start

  6. 檢查自啟動的服務,shell命令如下:

    sudo sysv-rc-conf

  7. 如果第六步和圖片中的叉叉一樣的就可以了。如果沒有叉叉,可以將游標移至相應括弧處,按空格依次設置。好了,可以打完收工啦,重啟看看是否成功~祝君好運!

補充

測試系統:樹莓派debian(raspbian-wheezy)

說明:由於我以前嘗試過使用raspbian-jessie,但是印象相當差,所以不打算對該系統進行測試,僅供參考。之所以要專門寫一個樹莓派的方法,是因為我最初按照上面的ubuntu下的方法雖然測試成功,但是使用一段時間後,莫名其妙開機自啟就失效了。下面介紹的方法也可作為設置開機啟動項失敗時參考的備用方案。

  1. 我的ngrok客戶端放在「/home/serverdata」目錄下,在該目錄下新建一個名為「ngrok.sh」的啟動腳本,內容如下,保存之;

    cd /home/serverdata #此處更改為你自己的ngrok客戶端的文件路徑nohup ./ngrok clientid your id >/dev/null 2>&1 #your id改成自己的id,多個id用逗號(半形)隔開

  2. 保存上一步的文件,並賦予777的許可權,shell命令如下:

    sudo chmod 777 /home/serverdata/ngrok.sh

  3. 接著我們來把ngrok啟動腳本添加到開機啟動中。打開 /etc/rc.local,在exit 0的上一行加上如下代碼:

    /home/serverdata/ngrok.sh start

  4. 好了,可以打完收工啦,重啟你的小派派看看是否成功~祝君好運!

推薦閱讀:

TAG:ngrok | TCP | Web開發 |