最新完美教程 使用centos 7 linux 自己搭建 ngrok 實現(xiàn)內(nèi)網(wǎng)穿透

最新完美教程 使用centos 7 自己搭建 ngrok 實現(xiàn)內(nèi)網(wǎng)穿透

其實挺麻煩的,我查了好多資料才搞定的。如果不想折騰,就簡單使用ngrok 實現(xiàn)內(nèi)網(wǎng)穿透,可以移步到我這個教程利用 ngrok 免費內(nèi)網(wǎng)穿透部署 微信開發(fā) 調(diào)試環(huán)境。

一、環(huán)境安裝

安裝git
如果出現(xiàn) yum 的程序找不到,或者很慢
請移步這個教程yum 找不到程序, yum更換國內(nèi)阿里源

# 安裝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++  

# 下載新版本git (版本列表 https://www.kernel.org/pub/software/scm/git/)  
cd /usr/local  
wget https://www.kernel.org/pub/software/scm/git/git-2.16.2.tar.gz  

# 解壓  
tar zxvf git-2.16.2.tar.gz  

# 編譯git  
cd git-2.16.2  
./configure --prefix=/usr/local/git  
make  
make install  

#刪除剛才下載的git包
cd /usr/local
rm git-2.16.2.tar.gz -y

安裝go

# 下載go 
cd /usr/local
www.golangtc.com/static/go   (這里是列表,注意自己的系統(tǒng)是多少位的,linux-amd64是64位的。linux-386是32位的)
wget https://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz  
如果很慢,可以下載到本地,在上傳到服務(wù)器

# 解壓  
tar -zxvf go1.9.2.linux-amd64.tar.gz /usr/local/  

# go的命令需要做軟連接到/usr/bin  
ln -s /usr/local/go/bin/* /usr/bin/ 

#刪除下載的go包
rm go1.9.2.linux-amd64.tar.gz -y

go環(huán)境設(shè)置

#安裝go語言的安裝環(huán)境
yum install mercurial bzr subversion -y
#新建go目錄作為項目目錄
mkdir -p $HOME/go
#用cat的方法在尾部增加配置配置golang的 GOROOT GOPATH
#(注意,這里GOROOT 后面的路徑是你go解壓的路徑,如果不是按照我的方法解壓的,請注意看一下)
下面這段,整段復(fù)制粘貼過去
cat >>$HOME/.bash_profile<<EOF
export GOROOT=/usr/local/go    
export GOPATH=\$HOME/go
export PATH=\$PATH:\$GOROOT/bin
EOF
#讓配置生效
source $HOME/.bash_profile

3.檢查下go的env環(huán)境變量
go env

輸出:
有一段輸出就行了,比如這樣的
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/root/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"

二、ngrok配置

下載ngrok

cd /usr/local/  
git clone https://github.com/inconshreveable/ngrok.git

環(huán)境變量

export GOPATH=/usr/local/ngrok/  
export NGROK_DOMAIN="xxx.com"   #這里寫你自己的域名,不要前綴,比如www

估計這里你會有疑問,看到別人家都是 ngrok.xxx.com 類似這種形式的
這里就是用到了三級域名解析,如果你想要以 xxx.ngrok.xxx.com 這種最終域名形式訪問你的服務(wù),(這里第一次搭建不推薦,你可以二級成功以后再用三級的,但是得從環(huán)境變量這步往下重新操作一邊。)請看下面教程:
超簡單 圖解 三級域名解析

生成證書

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 

拷貝證書覆蓋ngrok原來的證書

過程會讓你輸入y 回車
cp rootCA.pem assets/client/tls/ngrokroot.crt 
cp server.crt assets/server/tls/snakeoil.crt 
cp server.key assets/server/tls/snakeoil.key

生成服務(wù)端

cd /usr/local/ngrok/  
GOOS=linux GOARCH=amd64 make release-server  #這里GOOS后面是你的系統(tǒng),我是linux,GOARCH 后面是系統(tǒng),64位是amd64,32位是386
然后就是等待下載了,沒有進(jìn)度條,耐心等待。
這里可能報各種錯,我當(dāng)時就很崩潰。
生成的服務(wù)端在/usr/local/ngrok/bin   下的  ngrokd文件

錯誤:無法交叉編譯 cannot install cross-compiled binaries

$ make release-server GOOS=linux GOARCH=386  
bin/go-bindata -nomemcopy -pkg=assets -tags=release \  
        -debug=false \  
        -o=src/ngrok/client/assets/assets_release.go \  
        assets/client/...  
bin/go-bindata -nomemcopy -pkg=assets -tags=release \  
        -debug=false \  
        -o=src/ngrok/server/assets/assets_release.go \  
        assets/server/...  
go get -tags 'release' -d -v ngrok/...  
go install -tags 'release' ngrok/main/ngrokd  
go install: cannot install cross-compiled binaries when GOBIN is set  
make: *** [server] Error 1

解決方法

cd /usr/local/ngrok
mkdir bin  
cp $GOBIN/go-bindata bin/  
unset GOBIN

生成客戶端

cd /usr/local/ngrok/  
GOOS=windows GOARCH=amd64 make release-client  #這里GOOS后面是你的系統(tǒng),我是要在window上啟動客戶端,GOARCH 后面是系統(tǒng),64位是amd64,32位是386
然后就是等待下載了,沒有進(jìn)度條,耐心等待。
生成的在/usr/local/ngrok/bin/windows_amd64  的ngrok.exe  
都在bin下,服務(wù)端是ngrokd   客戶端是ngrok

啟動服務(wù)器端

這里為了方便我直接就用80端口了,請確認(rèn)你的80端口沒有被占用,關(guān)閉相應(yīng)的服務(wù)。
后面要想用,建議使用nginx反向代理到ngrok。

cd /usr/local/ngrok/bin
ngrokd -domain="xxx.com" -httpAddr=":80" -httpsAddr=":8081" -tunnelAddr=":4443"

#-domain后面你上面寫的域名  -httpAddr http端口  -httpsAddr https 端口 
#-tunnerlAddr 客戶端端口,連接端口

啟動客戶端(window)
現(xiàn)將ngrok.exe 下載到自己的電腦上,
然后同目錄下創(chuàng)建文件ngrok.conf;內(nèi)容如下:

server_addr: "xxxx.com:4443"   #你上面自己寫的域名
trust_host_root_certs: false  

#目錄下打開命令行
ngrok -config=./ngrok.conf -subdomain=blog 80 
#這里subdomain后面的是二級域名前綴,你可以改,
#注意要在域名解析里添加二級域名解析

添加二級域名解析

image.png

如下就是OK了 顯示online就可以!


image.png

最后通過blog.xxx.com 訪問你本地的服務(wù)器吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容