Ngrok實現內網穿透

2021-10-03 19:35:07 字數 3470 閱讀 4964

伺服器:centos 7.x

客戶機:centos 7.x

正常解析的網域名稱:mydoyou.cn

[root@ngrokd ~]

# yum install gcc git -y

[root@ngrokd ~]

# wget

[root@ngrokd ~]

# tar -zxvf go1.8.linux-amd64.tar.gz -c /usr/local

[root@ngrokd ~]

# echo "export goroot=/usr/local/go" >>/etc/profile

[root@ngrokd ~]

# echo "export path=\$path:\$goroot/bin " >>/etc/profile

[root@ngrokd ~]

# source /etc/profile

[root@ngrokd ~]

# cd /usr/local/src/

[root@ngrokd src]

# git clone

[root@ngrokd src]

# cd /usr/local/src/ngrok

[root@ngrokd ngrok]

# export ngrok_domain="mydoyou.com"

[root@ngrokd ngrok]

# openssl genrsa -out rootca.key 2048

[root@ngrokd ngrok]

# openssl req -x509 -new -nodes -key rootca.key -subj "/cn=$ngrok_domain" -days 5000 -out rootca.pem

[root@ngrokd ngrok]

# openssl genrsa -out device.key 2048

[root@ngrokd ngrok]

# openssl req -new -key device.key -subj "/cn=$ngrok_domain" -out device.csr

[root@ngrokd ngrok]

# openssl x509 -req -in device.csr -ca rootca.pem -cakey rootca.key -cacreateserial -out device.crt -days 5000

[root@ngrokd ngrok]

# \cp rootca.pem assets/client/tls/ngrokroot.crt

[root@ngrokd ngrok]

# \cp device.crt assets/client/tls/snakeoilca.crt (這一步原作者及網上大部分教程沒有,但是我操作的時候開始沒加,會報證書錯誤,卡了好久)

[root@ngrokd ngrok]

# \cp device.crt assets/server/tls/snakeoil.crt

[root@ngrokd ngrok]

# \cp device.key assets/server/tls/snakeoil.key

## 編譯服務端、客戶端二進位制檔案

[root@ngrokd ngrok]

# goos=linux goarch=amd64 make release-server

[root@ngrokd ngrok]

# goos=linux goarch=amd64 make release-client

[root@ngrokd ngrok]

# ll bin/

total 21964

-rwxr-xr-x 1 root root 2527810 mar 12 16:20 go-bindata

-rwxr-xr-x 1 root root 11101496 mar 12 16:27 ngrok #(客戶端)

-rwxr-xr-x 1 root root 8855200 mar 12 16:27 ngrokd #(服務端)

# 啟動服務端

#如果需要編譯其它客戶端,可以修改goos引數,如下在編譯客戶端的時候需要指明對應的作業系統和構架:

#linux 平台 32 位系統:goos=linux goarch=386

#linux 平台 64 位系統:goos=linux goarch=amd64

#windows 平台 32 位系統:goos=windows goarch=386

#windows 平台 64 位系統:goos=windows goarch=amd64

#mac 平台 32 位系統:goos=darwin goarch=386

#mac 平台 64 位系統:goos=darwin goarch=amd64

#arm 平台:goos=linux goarch=arm

[root@ngrok-client ~]

# cat /etc/ngrok/ngrokd.cfg

#新建客戶端配置檔案ngrokd.cfg

server_addr: "mydoyou.cn:4443"

## 4443 預設的監控埠

#網域名稱需要解析

## http 埠 httpaddr=":80"

#網域名稱需要解析

## https 埠 httpsaddr=":443"

ssh:

remote_port: 10022

proto:

tcp: "22"

啟動客戶端

[root@ngrok-client ~]

# ngrok -config=ngrok.cfg -log=ngrok.log start-all

## start-all表示啟動所有配置,也可以單獨指定 如 替換成

內網穿透Ngrok安裝

參考資料 domain表示使用的父網域名稱 後面在ngrok客戶端配置的 網域名稱是該網域名稱的子網域名稱 docker做埠對映時,為了支援tcp 如ssh登入,需要除了ngrok和ngrokd連線的埠 http https埠外,還需要額外的埠修改 etc hosts檔案 增加如下配置 以便通過ss...

ngrok內網穿透教程

由於開發web專案,經常需要將本地部署的 讓外網能直接訪問到,最便捷的做法當然是在adsl路由器上直接做埠對映,很不幸大部分運營商都遮蔽了80等常用埠,曾經的做法是在公網一台vps上架設openvpn,將筆記本和vps連到乙個虛擬區域網,再用iptables做埠 來達到目的,雖然可行,但速度比較慢,...

Ngrok搭建內網穿透

什麼是ngrok ngrok是一款用go語言開發的開源軟體,它是乙個反向 它可以通過乙個公共的斷點和本地執行的web伺服器建立乙個安全通道,實現內網穿透功能。情況一 無外網網域名稱,使用二級網域名稱 mac os linux amd64 windows x64 linux arm 解壓 在linux...