摘要:還有域名解析是否好了,能否通,可能你搭建環境是沒有問題的,但是解析錯了,那就悲劇了。
相信搞過微信開發、小程序的同學都踩過調試的坑,那種線上折騰通常能讓你憋上一口老痰。當然你也可以找其他的方式進行內網轉發,比如用QQ瀏覽器、別人已經搭建好的轉發服務、使用ssh+nginx。這這幾種我都使用過,為了省時間你值得擁有。但是最近看了ngrok的源碼,基于golang,那我就來勁了,因為我最近剛好在折騰golang網絡這一塊的內容。所以就自己來吧前提
1.記得看標題啊,我采用的是aws,所以意思你必須有一個服務器,必須有公網ip。
2.再有就是你要有一個域名,如果你使用過別人提供的ngrok,就知道,別人都采用三級域名泛解析的方式。所以希望你有一個自己的域名。不然沒辦法走下去了。
3.環境:redhat7.3
必要工具yum install -y mercurial git vim wget
這個mercurial是ngrok強制要求的。
安裝golang# 下載`go` cd /usr/local wget https://storage.googleapis.com/golang/go1.10.linux-amd64.tar.gz # 解壓 tar -zxvf go1.10.linux-amd64.tar.gz -C /usr/local/ # go的命令需要做軟連接到/usr/bin ln -s /usr/local/go/bin/* /usr/bin/設置go環境
#安裝go語言的安裝環境 yum install mercurial bzr subversion -y #新建go目錄作為項目目錄 mkdir -p $HOME/go #用cat的方法在尾部增加golang的環境:GOROOT GOPATH #下面這段,整段復制粘貼過去 cat >>$HOME/.bash_profile<檢查一下go的env環境變量:
go envngrok 配置
看到GOPATH,GOROOT就可以了下載:
cd /usr/local/ git clone https://github.com/inconshreveable/ngrok.git設置環境變量:
export GOPATH=/usr/local/ngrok/ #這里寫你自己的域名,建議你用二級域名,比如你有個域名為:baidu.com,那么這里就可以為:ngrok.baidu.com. export NGROK_DOMAIN="ngrok.xxx.com"當然你會問,為什么不直接使用baidu.com,而是用ngrok.baidu.com.如果你有限制的域名的話,當然是可以直接使用baidu.com的。
生成證書:
cd /usr/local/ngrok openssl genrsa -out rootCA.key 2048 #NGROK_DOMAIN 就是你上一步的步驟設置的域名 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生成服務端:
cd /usr/local/ngrok/ make release-server #這一步可能會出錯的,我之所以會寫這篇文章,是因為這個地方出現了好幾次錯誤,容易崩潰如果順利的話,生成的服務端在/usr/local/ngrok/bin下ngrokd文件.希望你可以一步到位
可能有的錯誤:
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這里說明一下,默認下go get把go-bindata下載到GOBIN目錄中了,所以你要把go-bindata復制到ngrok的bin目錄中,但是默認是沒有這個bin目錄的。
生成客戶端:
我用的是mac系統,所以我只生成mac ngrok客戶端,window的生成方法,可以參考底下參考文章cd /usr/local/ngrok/ GGOOS=darwin GOARCH=amd64 make release-client #然后就是等待下載了,沒有進度條,耐心等待。 #生成的在/usr/local/ngrok/bin/darwin_amd64 #都在bin下,服務端是ngrokd 客戶端是ngrok到這一步基本算是安裝完成了。
啟動服務端這里為了方便我直接就用80端口了,請確認你的80端口沒有被占用,關閉相應的服務。
后面要想用,建議使用nginx反向代理到ngrok。cd /usr/local/ngrok/bin ./ngrokd -domain="xxx.com" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443" #-domain后面你上面寫的域名,如上面寫的:ngrok.baidu.com -httpAddr http端口 -httpsAddr https 端口 默認為:443 #-tunnerlAddr 客戶端端口,連接端口,默認為:4443啟動客戶端先將服務器生成的客戶端ngrok下載到本地,aws下載的命令如下(不是aws,就用scp就可以了):scp -i "aa.pem" ec2-user@ec2-34-201-46-244.compute-1.amazonaws.com:/usr/local/ngrok/bin/darwin_amd64 /ngrok然后同目錄下創建文件ngrok.cfg 配置文件:
server_addr: "ngrok.xxx.com:4443" #你上面自己寫的域名,如ngrok.baidu.com trust_host_root_certs: false #目錄下打開命令行 ./ngrok -config=./ngrok.cfg -subdomain=blog 80 -log=ngrok.log #這里subdomain后面是你的三級域名前綴,你可以改 #注意要在域名解析里添加三級域名解析 #最好添加一個log, 不然出錯了,容易一臉懵逼這樣就可以了,然后在訪問blog.ngrok.xxx.com就可以訪問了。
域名解析可能有些小伙伴沒有怎么解析過三級域名。這里就短暫說一下。首先把你的二級域名解析到aws的ip上,如下圖
再添加一個三級域名解析:
這樣就可以了,其實還是比價簡單的。
特別提醒如果你是新的服務器,比如aws,默認有些端口是沒有開啟的(去安全組設置就好了)。所以你上面如果采用了其他的端口,先確定是否可用。不信的話你去telnet 4443端口試一下。還有域名解析是否好了,能否ping通,可能你搭建環境是沒有問題的,但是解析錯了,那就悲劇了。
telnet ngrok.baidu.com 4443 ping ngrok.baidu.comaws 如果是自己免費申請的,不用的時候記得關閉,不然超時那也要掏錢的。參考文章https://github.com/inconshrev...
https://blog.csdn.net/yjc_111...
https://blog.csdn.net/gebitan...
https://blog.csdn.net/qq_3656...
https://segmentfault.com/a/11...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30793.html
摘要:作為一個內網穿透的小工具,有時可能會時常更改配置等,所以作為本地的一個開機啟動的小服務即可。設置開機啟動輸入命令設置開機啟動開啟查看狀態停止內網穿透配置相對于另一款國內大牛做的要顯的更加輕量安全易配置些。 12月18日更新 添加 frp 配置 前言 內網穿透,無需多言,用處多多。首先強力推薦一款Sunny大大搭建的ngrok服務好用的不行,而且有免費選項,感覺平時夠用了。那么,為什么自...
摘要:本篇是該系列的第一篇,本地開發環境搭建以及接入微信。若確認此次請求來自微信服務器,原樣返回參數內容,則接入生效,成為開發者成功,否則接入失敗。 一、簡介 關于微信公眾號的介紹就省略了,自行搜索。注冊過程也不說了。我們會直接注冊測試號來實現代碼。這將會是個全面講解微信公眾號開發的系列教程。本篇是該系列的第一篇,本地開發環境搭建以及接入微信。在開始之前最好去看看開發者文檔微信公眾平臺技術文...
摘要:古話說萬事開頭難回頭細想想還真是這樣在沒有開始做微信公眾號開發之前我以為它很復雜但是學過之后只想說原來這里是我的項目的地址下面我就把我的學習過程做一下總結希望可以幫助到有需要的人兒粗鄙之見恐有不足歡迎指教在閱讀下文之前你應該對和框架有一定的 古話說: 萬事開頭難, 回頭細想想還真是這樣,在沒有開始做微信公眾號開發之前我以為它很復雜,但是學過之后只想說原來just so so~ 這里是我...
閱讀 3241·2021-11-22 12:07
閱讀 1882·2021-10-12 10:11
閱讀 1045·2019-08-30 15:44
閱讀 2943·2019-08-30 12:45
閱讀 2192·2019-08-29 16:41
閱讀 1641·2019-08-29 16:35
閱讀 2629·2019-08-29 12:57
閱讀 1153·2019-08-26 13:51