天天看點

Linux做伺服器搭建ngrok伺服器

(假設伺服器位址為:123.123.123.123)

1.  前置條件

1)  安裝go語言

# apt-get install golang
           

2)   安裝git

#apt-get install git 
           

# yuminstall git
           

2.   将ngrok源代碼克隆回本地

1)   建立ngrok的目錄

# mkdir ngrok
           

2)   源碼克隆

# git clone https://github.com/inconshreveable/ngrok.git ngrok
           

3.  設定環境變量

1)   ngrok域名解析加入環境變量

# vi /etc/profile
           

    在後面加入

export NGROK_DOMAIN="portref.123.123.123.123"
           

2)  環境變量生效

# source /etc/profile
           

4.  生成證書

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out server.key 2048
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 -out server.crt -days 5000
           

5.  拷貝證書并改名

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

6.  生成用戶端和服務端

GOOS=windows GOARCH=386 make release-server 
GOOS=windows GOARCH=386 make release-client
GOOS=linux GOARCH=386 make release-server
GOOS=linux GOARCH=386 make release-client
           

7.  bin下建立啟動腳本

# vi startup.sh
           

在腳本中填寫

#!/bin/bash
#ngrok server startup shell

addr=portref.123.123.123.123
http=8081
https=8082
port=4443
echo '************************************************************************************************************'
echo * 父級域名:$addr
echo * http端口:$http
echo * https端口:$https
echo * ngrok監聽端口:$port
echo '************************************************************************************************************'
nohup ./linux_386/ngrokd -domain="$addr" -httpAddr=":$http" -httpsAddr=":$https" -tunnelAddr=":$port" > ../listen.log &
           

8.  啟動ngrok

# sh startup.sh
           

9.  用戶端

1)  用戶端拷貝

在需要内網穿透的機器上,建立檔案夾ngrok,把生成的用戶端拷貝到檔案夾内

2)  建立配置檔案

建立ngrok.cfg檔案,檔案内設定如下内容:

server_addr: "123.123.123.123:443"
trust_host_root_certs: false
tunnels:
  svn:
    subdomain: "svn"
    proto:
      https: "8443"
 
  ftpI:
    remote_port: 22221
    subdomain: "ftp"
    proto:
      tcp: "21"

  ftpO:
    remote_port: 46637
    subdomain: "ftp"
    proto:
      tcp: "46637"
           

3)  建立啟動腳本

建立startup.bat檔案,檔案内設定如下内容:

start /b ngrok.exe-config ngrok.cfg start desktop ftpI ftpO
           

繼續閱讀