內網穿透那點事 ngrok

2021-10-25 22:07:46 字數 2881 閱讀 3369

公司差事,花生殼限制太多,網路頻寬,終端連線數等等,看看了看手頭資源還行,自己搭一套

資源情況

1、伺服器一台 pc機也行,我用的虛擬機器,最主要是要有固定的公網出口

2、網域名稱乙個,看資料是說不用網域名稱也可以搞,但是既然有網域名稱了,咱就不費勁了~~

開始安裝

1、git安裝

yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-extutils-makemaker hg wget gcc gcc-c++
tar -zxvf go1.12.4.linux-amd64.tar.gz /usr/local/
目錄下即可看見 go 的目錄

#go的命令需要做軟連線到/usr/bin

ln -s /usr/local/go/bin/* /usr/bin/
設定全域性的環境變數

export goroot=/usr/local/go    

export gopath=\$home/go

export path=\$path:\$goroot/bin

使環境生效

source /etc/profile
好了 到這 我們的go安裝完了 檢測安裝是否安裝成功

go version

go env

3、安裝ngrok

為了查詢方便 也安裝到local目錄下

cd /usr/local/
配置 ngrok的環境變數

export gopath=/usr/local/ngrok/  

#這裡寫你自己的網域名稱,不要字首,比如www.abc.com 填寫abc.com (網域名稱已備案)

export ngrok_domain="abc.com"

4.生成ngrok證書並覆蓋原有的證書

cd /usr/local/ngrok

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

以上這個命令是拷來的 不必介意 就是生成證書的

覆蓋證書

cp -y rootca.pem assets/client/tls/ngrokroot.crt

cp -y server.crt assets/server/tls/snakeoil.crt

cp -y server.key assets/server/tls/snakeoil.key

到此 安裝配置結束

生成服務端

進入ngrok的目錄

cd /usr/local/ngrok/
執行生成服務端 其中amd64代表64位的linux系統 如果是32位的 改為:goarch=386

goos=linux goarch=amd64 make release-server
生成成功後 會在ngrok的bin下有乙個ngrokd資料夾 即代表成功

生成客戶端

和服務端一樣

cd /usr/local/ngrok/  

goos=windows goarch=amd64 make release-client

會在ngrok的bin下有乙個windows_amd64資料夾 即代表成功

下面是不同系統生成不同客戶端的版本 替換goods 和goarch的值即可

#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

服務端的啟動

在ngrock下執行

./bin/ngrokd -tlskey=server.key -tlscrt=server.crt -domain="abc.club" -httpaddr=":80" -httpsaddr=":443" -tunneladdr=":4443"
引數說明:

#-domain 訪問ngrok是所設定的服務位址生成證書時那個

#-httpaddr http協議埠 預設為80

#-httpsaddr https協議埠 預設為443

#-tunneladdr 通道埠 預設4443

內網穿透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...