關於搭建本身的內網穿透服務-ngrok

簡述搭建ngrok的過程node

一、環境準備linux

1)必須有一臺公網服務器,阿里雲服務器爲例(最好是linux 系統 centOs7)git

2)必須註冊本身的域名(xxx.vip),阿里雲上能夠註冊github

並在阿里雲服務器管理中,添加域名,並設置dns解析golang

設置域名雲DNS解析web

2 linux服務器上安裝ngrok,開啓ngrok服務windows

1.安裝git和golang,其中git不是必須的,安裝git僅僅是爲了後面下載ngrok源碼方便,golang是由於ngrok是用go語言寫的
   1)yum install git 安裝git
   2)yum install git ,若存在最好先執行yum remove git,再安裝,怕到時候下載不下來ngrok源碼
   3)安裝golang語言環境-wget https://studygolang.com/dl/golang/go1.8.linux-amd64.tar.gz。下載地址在
      https://studygolang.com/dl中找的,想換版本能夠在這裏找
   4)tar -zxvf go1.8.linux-amd64.tar.gz
   5)vi /etc/profile 加上這兩句話
      export GOROOT=你的go解壓地址
      export PATH=$PATH:$GOROOT/bin
      source /etc/profile 是環境生效
      go version 查看go是否安裝成功

2.下載ngrok源碼,安裝
  1)本地下載ngrok
    建立ngrok目錄 mkdir ngrok 並進入 cd ngrok
    在本地訪問https://github.com/inconshreveable/ngrok點擊下載zip包,解壓並上傳到ngrok服務器
  2)能夠經過git 克隆git clone https://github.com/inconshreveable/ngrok.git
  3)ngrok配置,執行一下命令。使用ngrok.com官方服務時,咱們使用的是官方的SSL證書。
     自建ngrokd服務,若是不想買SSL證書,咱們須要生成本身的自簽名證書,並編譯一個攜帶該證書的ngrok客戶端。
     證書生成過程須要一個NGROK_BASE_DOMAIN。 填寫咱們的域名地址xxx.vip
  4)按照以下命令一步步配置
     1. cd ngrok
     2. NGROK_DOMAIN="你的域名"
     3. openssl genrsa -out base.key 2048
     4. openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem
     5. openssl genrsa -out server.key 2048
     6. openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
     7. openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt
  通過以上步驟,證書已經生成
  5)覆蓋證書 cp base.pem assets/client/tls/ngrokroot.crt 複製證書
  6)編譯打包程序 make release-server release-client 或者 make release-all
     這一步驟等待時間較長,成功編譯後,會在bin目錄下找到ngrokd和ngrok這兩個文件。
  7)前面生成的 ngrokd 就是服務端程序了,指定證書、域名和端口啓動它(證書就是前面生成的,注意修改域名)
    ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="你的域名" -httpAddr=":8080" -httpsAddr=":8090" 其中domain是你的域名,httpAddr是服務器http訪問端口,httpsAddr是服務器https訪問端口,其中,ngrok會開啓4443端口與客戶端保持鏈接,因此以上三個端口必須准入防火牆。若正常的話會提示

8)生成window客戶端和mac客戶端
      GOOS=windows GOARCH=amd64 make release-client windown系統
      GOOS=windows GOARCH=amd64 make release-client  mac系統
   9)而後在同級目錄下新建一個配置文件ngrok.cfg
      內容爲:server_addr: "你的域名:4443"  
             trust_host_root_certs: false  
      同目錄下新建一個start.bat
       @echo on
       cd %cd%
       #ngrok -proto=tcp 22
       #ngrok start web
       ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=prefix(子域的前綴) port(本地服務的端口)

   雙擊start.bat 正常狀況下有以下所示

這種狀況就是成功了。服務器

3.服務端後臺運行,只須要開機自啓便可實現dom

1.經過nohup ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="你的域名" -httpAddr=":8080" -httpsAddr=":8090" 啓動能夠將啓動置入後臺,且斷開ssh也無影響。ssh

2.開機自啓方式

1)在ngrok程序目錄下新建一個啓動腳本,例如:start.sh
    path=/usr/local/ngrok
    cd $path
    ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="你的域名" -httpAddr=":8080" -httpsAddr=":8090" 

給腳本授予執行權限
chmod +x start.sh

2)把ngrok程序製做成系統服務
在 /etc/rc.d/init.d目錄下新建一個服務項目(ngrok),以下:
    #!/bin/sh  
    #chkconfig:2345 70 30  
    #description:ngrok  
      
    ngrok_path=/usr/local/ngrok
    case "$1" in  
        start)  
            echo "start ngrok service.."  
            sh ${ngrok_path}/start.sh  
            ;;  
        *)  
        exit 1  
        ;;  
    esac  

給該文件賦權限755
chmod 755 ngrok


3)註冊ngrok服務自啓動
  chkconfig --add  ngrok

  測試服務是否能啓動成功
  service ngrok start

  檢查自啓動的服務
  chkconfig

reboot重啓就實現自啓後臺運行了

4.linux 客戶端 ngrok後臺啓動方式

ngrok 用 & 不能後臺運行 

  這就要使用screen這個命令

  首先安裝screen

  yum install screen

  以後運行

  screen -S 任意名字(例如:keepngork)

 而後運行ngrok啓動命令

最後按快捷鍵

 ctrl+A+D

既能夠保持ngrok後臺運行
相關文章
相關標籤/搜索