阿里雲內網穿透


需求背景:

  項目需要被其他設備訪問,不在同一個局域網。 可以使用ngrok來將開發設備的端口映射至外網,從而達到讓其他設備訪問的目的。

  本文以阿里雲服務器為例,服務器必須有公網地址,配置無所謂,主要起一個轉發的作用。

  需要環境git、go

  aliyun自帶git

  go語言版本無要求,可以使用yum傻瓜式安裝(yum install go -y)

一、下載ngrok

cd /www/ngrok
git clone https://github.com/tutumcloud/ngrok.git

二、生成ngrok使用的https證書

cd /www/ngrok/ngrok
NGROK_DOMAIN="www.*****.top" openssl genrsa -out base.key 2048 openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.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 base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt

注意:第二行部分為服務器的域名

將生成的證書替換

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

三、編譯服務端

make release-server

生成bin/ngrok

四、編譯客戶端

GOOS=windows GOARCH=amd64 make release-client

生成bin/windows_amd64/ngrok.exe
ngrok.exe下載到你電腦

五、運行服務端

 后台運行

nohup ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="www.***com" -httpAddr=":3080" -httpsAddr=":3043" >/dev/null 2>log &

注意:上面的域名為步驟二中的域名,這兩處需要一致

注意:

  1、3080,3043端口可以改成80,443,如果這兩個端口空閑的話。
  2、阿里雲安全組開放3080、3043、4443端口,4443是默認的客戶端通信端口。
  3、iptables開放3080、3043、4443端口。
  4、添加兩條域名解析ngrok和*.ngrok,第二條記得帶上*.,不然無法匹配xxx.ngrok.test.com三級域名。

六、運行客戶端

創建編輯配置文件ngrok.cfg

server_addr: "www.****.top:4443"
trust_host_root_certs: false

運行

cmd 將目錄切換到ngrok的目錄,執行以下命令

ngrok -config=ngrok.cfg -subdomain abc 8080

其中

abc  為前置域名

8080  為本地機器需要映射出去的端口

 

下面附圖為我的機器客戶端啟動后的截圖

 

 

 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM