天天看點

【筆記】ngrok安裝方法

本文遷移位址:https://blog.muumlover.com/2018/05/ngrok-setup.html

首先,更新apt-get,安裝所需元件

sudo apt-get update
sudo apt-get install build-essential golang mercurial git -y
           

下載下傳ngrok源代碼

cd /usr/local/src
git clone https://github.com/inconshreveable/ngrok.git ngrok
cd ngrok
           

生成SSL證書

NGROK_DOMAIN="muumlover.com"
openssl genrsa -out rootCA.key 
openssl req -new -x509 -nodes -key rootCA.key -days  -subj "/CN=$NGROK_DOMAIN" -out rootCA.pem
openssl genrsa -out server.key 
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -days  -out server.crt
           

拷貝證書複制到指定位置

cp rootCA.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
           

生成伺服器端和用戶端

生成的過程中會發生錯誤,這個錯誤是由于websocket作者在更新時添加了加密功能,需配置後才可工作,這裡為了使用友善,直接使用移除該功能的版本。

cd /usr/local/src/ngrok/src/github.com/gorilla
rm -r websocket
git clone https://github.com/muumlover/websocket.git websocket
           

重新生成伺服器端和用戶端

生成多種系統使用的用戶端

sudo GOOS=linux GOARCH=arm make release-client
sudo GOOS=darwin GOARCH=amd64 make release-server release-client
sudo GOOS=windows GOARCH=amd64 make release-server release-client
           

設定ngrokd自啟動

cd /etc/init.d/
touch ngrokd
chmod + ngrokd
vim ngrokd
           

啟動腳本如下

#!/bin/bash
### BEGIN INIT INFO
# Provides:          ngrokd
# Required-Start:    $local_fs $remote_fs $network $syslog $named
# Required-Stop:     $local_fs $remote_fs $network $syslog $named
# default-Start:     2 3 4 5
# default-Stop:      0 1 6
# Short-Description: Stop/start ngrokd
### END INIT INFO

do_start()
{
    cd /usr/local/src/ngrok
    nohup sudo ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="muumlover.com" -httpAddr=":80" -httpsAddr=":443" &
}
do_stop() 
{
    ps -ef | grep ngrokd | awk '{print $2}' | xargs kill -
}

case "$1" in
    start)
        do_start
        ;;
    stop)
        do_stop
        ;;
    restart)
        do_stop
        do_start
        ;;
    *)
        ;;
esac
           

設定腳本自動啟動

apt-get install chkconfig -y
chkconfig ngrokd on
           

以上就完成了ngrok的安裝與自啟動

繼續閱讀