Centos7搭建Ngrok
安裝gcc和git(下載ngrok源碼)
yum install gcc -y?
yum install git -y
yum install -y mercurial git bzr subversion golang golang-pkg-windows-amd64 golang-pkg-windows-386
yum update -y nss curl libcurl
yum -y install gcc automake autoconf libtool make
設置go環境
cd /usr/local
wget?https://dl.google.com/go/go1.11.linux-amd64.tar.gz
tar -zxvf go1.11.linux-amd64.tar.gz
環境變量(vim /etc/profile)
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH
export NGROK_DOMAIN=ngrok.your.com
生效
source /etc/profile
——————————————
搭建環境:阿里云Centos7
1、更新Git(高于1.7即可)
查看當前git版本:git --version
詳見另一篇博客《Linux安裝最新版git》
2、安裝go
CentOS7用戶:
yum install -y mercurial git bzr subversion golang golang-pkg-windows-amd64 golang-pkg-windows-386
其他CentOS用戶:
沒有Go,只有虛擬機交叉編譯,找臺CentOS7的服務器編譯GO。
檢查Go安裝成功與否
go version
3、下載ngrok
返回git的上層目錄:cd ..
git clone https://github.com/inconshreveable/ngrok.git #不是所有者使用HTTPS方式或者SSH方式
如果報錯: git clone: fatal: Unable to find remote helper for 'https'
由于 Git configure 配置時沒有設定 --with-curl --with-expat 造成
CentOS使用yum安裝curl開發相關庫后重新配置編譯git即可:
命令:yum install libcurl-devel 隨后cd到git目錄make && make install等等...
4、生成自簽名證書,在生成證書時需要一個解析到服務器上的主域名,以"zxfngrok.zxiaofan.com"為例:
cd ngrok
NGROK_DOMAIN="zxfngrok.zxiaofan.com"
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 device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
將新生成的證書,替換掉assets/client/tls下的證書
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
5、編譯ngrok服務端:
cd到ngrok目錄
//指定環境變量位64位linux版本
GOOS=linux GOARCH=amd64 #如果是32位系統,這里 GOARCH=386
make release-server
如果報錯:-bash: make: command not found
因為安裝系統的時候使用的是最小化mini安裝,系統沒有安裝make、vim等常用命令,直接yum安裝即可:yum -y install gcc automake autoconf libtool make
編譯會很慢(依賴git),耐心等待
這里會等很久:GOOS="" GOARCH="" go get github.com/jteeuwen/go-bindata/go-bindata
提速方案:翻墻or更改hosts(vim /etc/hosts,maybe需要reboot)
如果報錯:fatal: unable to access 'https://github.com/alecthomas/log4go/'
或其他下載失敗,多半是由于GFW,重來一次獲取就OK了。
正常情況下,在ngrok/bin/下會有ngrokd文件,這就是我們的服務端了。
6、編譯客戶端(go >= 1.6):
cd到ngrok目錄
(1)若是客戶端使用與服務器相同系統可直接使用 make release-client指令。
(2)若是不同系統,則需要通過go中的make.bash手工編譯出跨編譯工具。
在$GOROOT/src目錄下找到make.bash文件,通過設置GOOS和GOARCH來完成生成跨編譯工具:
#linux
make release-client
#windows
GOOS=windows GOARCH=amd64 make release-client
#mac
GOOS=darwin GOARCH=amd64 make release-client
正常情況下,在cd bin/windows_amd64/下,有剛生成的ngrok.exe,下載到windows備用。
7、使用
啟動服務端:
cd 到服務端目錄ngrok/,
可以指定證書,域名,端口號來啟動:
./bin/ngrokd -tlsKey=device.key -tlsCrt=device.crt -domain="csdnnrgok.zxiaofan.com" -httpAddr=":8234" -httpsAddr=":8334" -tunnelAddr=":443"
如需后臺運行,指令改為:nohup./bin/ngrokd -tlsKey=device.key -tlsCrt=device.crt -domain="csdnnrgok.zxiaofan.com" -httpAddr=":8234" -httpsAddr=":8334" -tunnelAddr=":443"&
如果需要開機自啟動,參考另一篇博客《CentOS 7將linux服務加入系統啟動 systemd service》
可新建start.sh放在ngrok目錄,欲啟動ngrok,執行該腳本即可。
-----
# start.sh
cd /root/ngrok/
nohup bin/ngrokd -tlsKey=device.key -tlsCrt=device.crt -domain=zxfngrok.zxiaofan.com -httpAddr=:8234-httpsAddr=:8334-tunnelAddr=:443 &
-----
如果執行命令后出現>,則可能命令有誤,比如域名缺少引號等。
如果出現panic: open device.crt: no such file or directory,則指令有誤,修改device.crt路徑即可。
出現以下內容則啟動成功:
[00:46:10 CST 2016/12/30] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [registry] [tun] No affinity cache specified
[00:46:10 CST 2016/12/30] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [metrics] Reporting every 30 seconds
[00:46:10 CST 2016/12/30] [INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:8234
[00:46:10 CST 2016/12/30] [INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:8334
[00:46:10 CST 2016/12/30] [INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:443
啟動客戶端:
注意:server_addr的端口應和服務端啟動命令tunnelAddr的一致。
將ngrok.exe放在D:\ngrok,并且在D:\ngrok編輯配置文件ngrok.cfg
server_addr: "zxfngrok.zxiaofan.com:443"
trust_host_root_certs: false
打開windows控制臺win+r ,進入D:\ngrok,執行
./ngrok -config=ngrok.cfg -log=ngrok.log -subdomain=test 8080
亦可做其他定義:
server_addr: "zxfngrok.zxiaofan.com:4443"
trust_host_root_certs: false
tunnels:
ssh:
remote_port: 11111
proto:
tcp: "127.0.0.1:22"
mstsc:
remote_port: 22222
proto:
tcp: "127.0.0.1:3389"
web:
subdomain: "test"
proto:
http: 80
遠程桌面:ngrok -config=ngrok.cfg start ssh web mstsc
出現以下內容則客戶端啟動成功:
Tunnel Status online
Version 1.7/1.7
Forwarding http://test.zxfngrok.zxiaofan.com:8234-> 127.0.0.1:80
Forwarding tcp://zxfngrok.zxiaofan.com:11111 -> 127.0.0.1:22
Forwarding tcp://zxfngrok.zxiaofan.com:22222 -> 127.0.0.1:3389
Web Interface 127.0.0.1:4040
# Conn 0
Avg Conn Time 0.00ms
注意:
1、客戶端ngrok.cfg中server_addr后域名必須嚴格與-domain以及證書中的NGROK_BASE_DOMAIN相同,否則Server端就會出現如下錯誤日志:
Failed to read message: remote error: bad certificate
2、如果客戶端注冊相同的域名,將會失敗,提示已被注冊。
可用nssm.exe將ngrok注冊為服務,開機自啟后臺運行。詳見另一篇博客《nssm注冊windows服務》。
有任何問題可到csdn.zxiaofan.com討論。
參考:
http://www.jianshu.com/p/d0b00d233d09
http://www.cnblogs.com/pwenlee/p/5302880.html
歡迎個人轉載,但須在文章頁面明顯位置給出原文連接;
未經作者同意必須保留此段聲明、不得隨意修改原文、不得用于商業用途,否則保留追究法律責任的權利。
?
【 CSDN 】:csdn.zxiaofan.com
【GitHub】:github.zxiaofan.com
?
原文鏈接:https://blog.csdn.net/u010887744/article/details/53957683
?
?
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
什么是Ngrok
Ngrok是一款用go語言開發的開源軟件,它是一個反向代理。通過在公共的端點和本地運行的Web服務器之間建立一個安全的通道。Ngrok可捕獲和分析所有通道上的流量,便于后期分析和重放。
下圖簡述了Ngrok的原理
?
應用場景
用于對處在內網環境中,無外網IP的計算機的遠程連接。
Ngrok可以做TCP端口轉發,對于Linux可以將其映射到22端口進行SSH連接。Windows的遠程桌面可以將其映射到3389端口來實現。同理,如果要做MySQL的遠程連接,只需映射3306端口即可。
用作臨時搭建網站并分配二級域名,可用作微信二次開發的本地調試。
微信公眾平臺二次開發時,服務器必須要能通過外網訪問,而且必須是80接口。我們一般會在自己的電腦上寫代碼,但是由于電信運營商將80端口屏蔽了,甚至很多人通過無線路由器上網,根本就沒有公網ip。在這種情況下,我們每次都要上傳代碼到服務器對微信公眾平臺進行接口調試,十分的不方便。而Ngrok可以將內網映射到一個公網地址,這樣就完美的解決了我們的問題。
Ngrok官方為我們免費提供了一個服務器,我們只需要下載Ngrok客戶端即可正常使用,但是后來官方的服務越來越慢,直到Ngrok官網被完全屏蔽?,F在我們已經無法使用ngrok官方的服務器了。所以,接下來我們自行搭建屬于自己的ngrok服務器,為自己提供方便快捷又穩定的服務,一勞永逸。
注意:ngrok.com 提供的服務是基于 ngrok 2.0,github 上目前只有 1.0 的源碼,二者功能和命令有一些區別,用的時候別搞混了
編譯ngrok
安裝go get工具
?#ubuntu
apt-get install build-essential golang mercurial git
#centos
yum install mercurial git bzr subversion ?golang
#git版本需要在1.7.9.5以上,如果不符合條件需要將git版本升級。
yum --disablerepo=base,updates --enablerepo=rpmforge-extras update git
獲取ngrok源碼
?GOPATH=~/goproj
mkdir ~/goproj/src/github.com/inconshreveable
cd ~/goproj/src/github.com/inconshreveable
#官方地址編譯時要報錯
git clone https://github.com/inconshreveable/ngrok.git
#請使用下面的地址,修復了無法訪問的包地址
git clone https://github.com/tutumcloud/ngrok.git ngrok
export GOPATH=~/goproj/src/github.com/inconshreveable/ngrok
修改源代碼中庫引用的錯誤
由于google code的關閉,所以我們要把作者代碼中的庫引用地址修改一下
修改src/ngrok/log/logger.go文件
log "code.google.com/p/log4go" 改為log "github.com/alecthomas/log4go"
注:最新github.com上的代碼這個問題已修復
生成自簽名證書
使用ngrok.com官方服務時,我們使用的是官方的SSL證書。自建ngrokd服務,我們需要生成自己的證書,并提供攜帶該證書的ngrok客戶端。生成并替換源碼里默認的證書,注意域名修改為你自己的。(之后編譯出來的服務端客戶端會基于這個證書來加密通訊,保證了安全性)
證書生成過程需要一個NGROK_DOMAIN。以ngrok官方隨機生成的地址693c358d.ngrok.com為例,其NGROK_DOMAIN就是”ngrok.com”,如果你要提供服務的地址為”example.tunnel.imike.me”,那NGROK_BASE_DOMAIN就應該是”tunnel.imike.me”。
?cd ngrok
NGROK_DOMAIN="tunnel.imike.me"
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
執行完以上命令,在ngrok目錄下就會新生成6個文件
?ls -lt ? ? ? ? ? ? ? ? ? ? ? ? ?
總用量 56
-rw-r--r-- 1 root root ?973 3月 ?23 11:23 server.crt
-rw-r--r-- 1 root root ? 17 3月 ?23 11:23 base.srl
-rw-r--r-- 1 root root ?891 3月 ?23 11:23 server.csr
-rw-r--r-- 1 root root 1675 3月 ?23 11:23 server.key
-rw-r--r-- 1 root root 1115 3月 ?23 11:23 base.pem
-rw-r--r-- 1 root root 1679 3月 ?23 11:23 base.key
Ngrok通過bindata將ngrok源碼目錄下的assets目錄(資源文件)打包到可執行文件(ngrokd和ngrok)中去,assets/client/tls和assets/server/tls下分別存放著用于ngrok和ngrokd的默認證書文件,我們需要將它們替換成我們自己生成的(因此這一步務必放在編譯可執行文件之前)
?cp base.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
編譯Linux服務端和客戶端
make release-server release-client編譯之后,就會在ngrok源碼的bin目錄下生成兩個可執行文件:ngrokd、ngrok。其中ngrokd就是ngrok的服務端程序,ngrok就是ngrok的客戶端程序。
編譯Linux客戶端
make release-client編譯window版本客戶端
上述編譯過程生成的服務端和客戶端都是linux下的,不能在windows下用。如果想編譯生成windows客戶端,需要重新配置環境并編譯。交叉編譯過程如下:
?進入go目錄,進行環境配置
cd ?/usr/local/go/src/
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 ./make.bash ?
進入ngrok目錄重新編譯
GOOS=windows GOARCH=amd64 make release-client
編譯后,就會在bin目錄下生成windows_amd64目錄,其中就包含著windows下運行的服務器和客戶端程序。
#以上GOARCH=amd64指的是編譯為64位版本,如需32位改成GOARCH=386即可
編譯arm客戶端
?cd /usr/lib/golang/src/
sudo GOOS=linux GOARCH=arm CGO_ENABLED=0 ./make.bash
sudo GOOS=linux GOARCH=arm make release-client
編譯mac版本客戶端
GOOS=darwin GOARCH=amd64 make ?release-client設置域名解析
添加兩條A記錄:tunnel.imike.me和*.tunnel.imike.me,指向所在的Ngrok服務器ip。
運行Ngrok
服務端啟動
指定證書、域名和端口啟動它(證書就是前面生成的,注意修改域名)
?./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="tunnel.imike.me" -httpAddr=":8081" -httpsAddr=":8082"
[14:54:30 CST 2016/03/23] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [registry] [tun] No affinity cache specified
[14:54:30 CST 2016/03/23] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [metrics] Reporting every 30 seconds
[14:54:30 CST 2016/03/23] [INFO] (ngrok/log.Info:112) Listening for public http connections on [::]:8081
[14:54:30 CST 2016/03/23] [INFO] (ngrok/log.Info:112) Listening for public https connections on [::]:8082
[14:54:30 CST 2016/03/23] [INFO] (ngrok/log.Info:112) Listening for control and proxy connections on [::]:4443
到這一步,ngrok 服務已經跑起來了,可以通過屏幕上顯示的日志查看更多信息。httpAddr、httpsAddr 分別是ngrok用來轉發http、https服務的端口,可以隨意指定。ngrokd還會開一個4443端口用來跟客戶端通訊(可通過-tunnelAddr=”:xxx” 指定),如果你配置了iptables 規則,需要放行這三個端口上的TCP協議。
現在通過http://tunnel.imike.me:8081和https://tunnel.imike.me:8082就可以訪問到ngrok提供的轉發服務。
設置開機自動啟動ngrok服務
?vim /etc/init.d/ngrok_start:
cd /root/goproj/src/github.com/inconshreveable
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="tunnel.imike.me" -httpAddr=":8081" -httpsAddr=":8082"
chmod 755 /etc/init.d/ngrok_start
客戶端啟動
使用默認配置文件啟動
對默認設置文件 ~/.ngrok 進行編輯:
?server_addr: tunnel.imike.me:4443
trust_host_root_certs: false
tunnels:
? ?#http:subdomain: "test"
? ?web:
? ? ? ?#auth: "AuthUser:AuthPassWord"
? ? ? ?proto:
? ? ? ? ? ?http: 80
? ?ssh:
? ? ? ?remote_port: 12222
? ? ? ?proto:
? ? ? ? ? ?tcp: 22
從命令行運行:
./bin/ngrok start web ssh當客戶端使用http/https協議連接,可指定一個二級域名,服務端會分配該二級域名給客戶端作為入口,比如web.tunnel.imike.me;
當客戶端使用tcp 協議連接,則服務端不會分配二級域名,改為監控一個隨機端口,比如 tunnel.imike.me:12345,remote_port可由客戶端對該端口進行指定,比如tunnel.imike.me:12222。
使用自定義配置文件
創建一個配置文件ngrok.cfg,內容如下:
?vim ngrok.cfg:
server_addr: tunnel.imike.me:4443
trust_host_root_certs: false
映射HTTP
?#啟動ngrok客戶端
#指定子域、要轉發的協議和端口,以及配置文件,運行客戶端:
#注意:如果不加參數-subdomain=test,將會隨機自動分配子域名。
./bin/ngrok -subdomain web -proto=http -config=ngrok.cfg 80
#客戶端ngrok正常執行顯示的內容
ngrok ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(Ctrl+C to quit)
Tunnel Status ? ? online
Version ? ? ? ? ? 1.7/1.7
Forwarding ? ? ? ?http://web.tunnel.imike.me:8081 -> 127.0.0.1:80
Web Interface ? ? 127.0.0.1:4040
# Conn ? ? ? ? ? ?0
Avg Conn Time ? ? 0.00ms
打開瀏覽器,分別在地址欄中輸入http://localhost和http://web.tunnel.imike.me:8081,如果后者正常顯示并且和http://localhost顯示的內容相同,則證明我們已經成功了。
映射TCP
有時候,我們使用遠程桌面功能,或者在linux中進行SSH連接,對于處在內網環境中的計算機,我們可以對該端口進行TCP映射。
?#這里以SSH連接Linux時的22端口為例
./bin/ngrok -config=ngrok.cfg -proto=tcp 22
映射成功的話,會顯示如下內容:
#客戶端ngrok正常執行顯示的內容
ngrok ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(Ctrl+C to quit)
Tunnel Status ? ? online
Version ? ? ? ? ? 1.7/1.7
Forwarding ? ? ? ?tcp://imike.me:12222 -> 127.0.0.1:22
Web Interface ? ? 127.0.0.1:4040
# Conn ? ? ? ? ? ?0
Avg Conn Time ? ? 0.00ms
現在,在putty等ssh工具中即可連接imike.me。切記端口是號12222,是隨機分配的一個端口號,而不是默認的22端口了。Windows的遠程桌面可以將其映射到3389端口來實現。同理,如果要做MySQL的遠程連接,只需映射3306端口即可。FTP可映射21端口。
注意:客戶端必須使用自己編譯的ngrok文件
管理界面
Ngrok客戶端運行后,有一個Web Interface地址,這是ngrok 提供的監控界面。通過這個界面可以看到遠端轉發過來的http 詳情,包括完整的request/response 信息,可以不刷新頁面通過replay按鈕重新發出請求,非常方便。
訪問管理界面:http://127.0.0.1:4040
后續定制及優化
通過以上操作,我們的ngrok服務器就已經成功搭建了,客戶端也成功的跑了起來。但是,如果我們想要對ngrok進行一些定制和優化,可以參考這些后續定制及優化的方法。
為什么在啟動服務端的時候,端口不指定為80
很遺憾,因為這臺vps不是只用來做ngrok服務的,我博客還在上面呢,80端口已經被nginx占用了。
那怎么辦?不得不提nginx是個牛逼的軟件,我們可以在nginx中配置一個server,就綁定web.tunnel.imike.me域名,然后將所有請求轉發到后端:8081端口上,這就是反向代理。我發一下自己的nginx配置:
#ngrok.imike.me.conf
upstream ngrok {
? ?server 127.0.0.1:8000;
? ?keepalive 64;
}
server {
? ?listen 80;
? ?server_name *.tunnel.imike.me;
? ?access_log /var/log/nginx/ngrok_access.log;
? ?location / {
? ? ? ?proxy_set_essay-header X-Real-IP $remote_addr;
? ? ? ?proxy_set_essay-header X-Forwarded-For $proxy_add_x_forwarded_for;
? ? ? ?proxy_set_essay-header Host ?$http_host:8081;
? ? ? ?proxy_set_essay-header X-Nginx-Proxy true;
? ? ? ?proxy_set_essay-header Connection "";
? ? ? ?proxy_pass ? ? ?http://ngrok;
? ?}
}
修改客戶端ngrok默認服務地址
客戶端每次還需要加載配置文件,這樣顯得有些麻煩。能不能像官方服務那樣直接執行命令 ngrok 80就能使用呢?我們只需要在編譯客戶端之前,稍作修改即可。同樣,如果需要指定域名可以執行命令 ngrok -subdomain=test 80來運行客戶端。
修改默認服務地址
?vim ./src/ngrok/client/model.go
找到第23行,將 defaultServerAddr = "ngrokd.ngrok.com:443"
修改為defaultServerAddr = "tunnel.mydomain:4443" 即可。
修改客戶端ngrok左上角藍色文字logo
運行客戶端后,我們會發現在客戶端左上角會有一個藍色字體的”ngrok”字樣的文字logo,如果覺得不太喜歡,或者想修改一下的話,可以在編譯客戶端之前,作如下修改。
修改客戶端藍色文字logo
?Vim ./src/ngrok/client/views/term/view.go
找到第100行,將
v.APrintf(termbox.ColorBlue|termbox.AttrBold, 0, 0, "ngrok")
修改為
v.APrintf(termbox.ColorBlue|termbox.AttrBold, 0, 0, "your logo")
即可。
修改客戶端幫助信息
Ngrok客戶端默認的幫助信息很少,我們可以在編譯客戶端之前,自己定制幫助內容。
修改客戶端默認幫助信息
?vim ./src/ngrok/client/client/cli.go
找到第14行,修改 const usage2 string的值即可。
客戶端程序加殼優化
編譯好的Windows客戶端ngrok.exe大小為10MB,感覺有點大,這樣加載到內存中,需要讀取硬盤的內容也相對較多,影響速度。所以,我們來給客戶端程序加個壓縮殼,對程序進行壓縮。
這里采用mpress進行加殼,先從網上下載mpress.exe,之后將ngrok.exe拖放到mpress.exe的圖標上,就能完成加殼操作。我們可以看到,加殼后的程序只有1.94MB,壓縮率不到20%,大大節省了磁盤空間。同時小文件加載起來,速度會更快。
常見錯誤
在編譯ngrok的時候,安裝yaml的時候不能下載,無反應
?gopkg.in/inconshreveable/go-update.v0 ?(download)
或者
gopkg.in/yaml.v1 (download)
原因git版本太低,需>= 1.7.9.5,通過RPMForge源安裝最新版本git解決:
yum --enablerepo=rpmforge-extras install git
把編譯出來的32位客戶端放在64位上運行時會報錯
?/lib/ld-linux.so.2: bad ELF interpreter
#解決方法
yum install -y glibc.i686
在ngrok目錄下執行如下命令,編譯ngrokd
?$ make release-server
出現如下錯誤:
GOOS="" GOARCH="" go get github.com/jteeuwen/go-bindata/go-bindata
bin/go-bindata -nomemcopy -pkg=assets -tags=release \
? ? ? ?-debug=false \
? ? ? ?-o=src/ngrok/client/assets/assets_release.go \
? ? ? ?assets/client/…
make: bin/go-bindata: Command not found
make: *** [client-assets] Error 127
go-bindata被安裝到了$GOBIN下了,go編譯器找不到了。修正方法是將$GOBIN/go-bindata拷貝到當前ngrok/bin下。
$cp /home/ubuntu/.bin/go14/bin/go-bindata ./bin
客戶端ngrok.cfg中server_addr后的值必須嚴格與-domain以及證書中的NGROK_BASE_DOMAIN相同,否則Server端就會出現如下錯誤日志
?[03/13/15 09:55:46] [INFO] [tun:15dd7522] New connection from 54.149.100.42:38252
[03/13/15 09:55:46] [DEBG] [tun:15dd7522] Waiting to read message
[03/13/15 09:55:46] [WARN] [tun:15dd7522] Failed to read message: remote error: bad certificate
[03/13/15 09:55:46] [DEBG] [tun:15dd7522] Closing
一此國內的Ngrok免費服務
http://www.ittun.com
http://qydev.com/
http://natapp.cn/
http://www.ngrok.cc/
參考文檔
http://www.google.com
http://blog.lzp.name/archives/24
http://tonybai.com/2015/03/14/selfhost-ngrok-service/
總結
以上是生活随笔為你收集整理的Centos7搭建Ngrok的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 泰拉瑞亚雪人军团怎么召唤
- 下一篇: Windows7下Docker的安装