新聞中心
Linux是一種廣泛使用的操作系統(tǒng),它的強大和靈活性已經(jīng)被證明,吸引了越來越多的用戶加入到Linux-camp中。然而,即使是Linux用戶也需要隨時隨地訪問公開網(wǎng)絡(luò),這時候ngrok就派上用場了。本文將介紹ngrok是什么、為什么要使用它以及如何快速啟動ngrok來使得Linux更加高效。

一、什么是ngrok?
ngrok是一個反向代理,它可以將您的本地網(wǎng)絡(luò)服務(wù)暴露給公眾的Internet,從而使得您的本地服務(wù)全球可用。ngrok是由Alan Shreve開發(fā)的,它使用Go語言編寫,是開源軟件之一。
ngrok底層的原理較為簡單,它使用公共的ngrok服務(wù)器分配一個隨機端口,并且綁定到您的本地服務(wù)端口。它使用了一種稱為隧道技術(shù)的技術(shù),可以構(gòu)建一個安全的網(wǎng)絡(luò)連接,即使不使用公共的IP或DNS也可以訪問您的服務(wù)。
二、為什么要使用ngrok?
1. 繞過防火墻限制
許多公司和組織都限制了訪問外部服務(wù)器的權(quán)限,以保證網(wǎng)絡(luò)安全。使用ngrok可以繞過這些限制,訪問您的本地網(wǎng)絡(luò)服務(wù)。
2. 向公眾暴露您的本地服務(wù)
如果您想在本地開發(fā)和測試一個Web應(yīng)用程序,那么這個應(yīng)用程序只能在您的本地機上運行。使用ngrok可以將您的本地應(yīng)用程序暴露給公共網(wǎng)絡(luò),讓其他用戶也能訪問。
3. 增加安全性
ngrok采用了安全的網(wǎng)絡(luò)連接,可以防止通過公共網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)被攔截或篡改。
4. 輕松使用
ngrok的安裝和使用非常簡單,可以快速地啟動,快速地停止。
三、如何快速啟動ngrok
ngrok的安裝和啟動十分簡單,只需幾個簡單的步驟。
1. 下載ngrok
首先需要下載ngrok,可以從官網(wǎng)下載:https://ngrok.com/download。
2. 解壓ngrok
在下載完成后,需要解壓ngrok文件。在解壓后的文件夾中,您會找到一個名為“ngrok”的二進制文件。
3. 注冊ngrok賬戶
在啟動ngrok之前,需要注冊一個賬戶。在官網(wǎng)上進行注冊,注冊后可以使用已注冊的郵箱地址登錄ngrok客戶端。
4. 啟動ngrok
啟動ngrok需要通過執(zhí)行命令行命令來完成。輸入以下命令:
./ngrok authtoken [your-auth-token]
然后再輸入命令:
./ngrok [protocol] [local-port]
其中,[protocol]可以是http或者https,并且不區(qū)分大小寫。
[local-port]是您要暴露的本地服務(wù)端口,如8080。
如果您的Web服務(wù)器已經(jīng)運行,那么在運行ngrok后,終端就會顯示一個可訪問的URL地址。通過這個URL地址可以訪問您的本地服務(wù)。
ngrok是一個功能強大的反向代理,可以將您的本地服務(wù)暴露給公共網(wǎng)絡(luò),使得您的本地服務(wù)全球可用。使用ngrok可以繞過防火墻限制,向公眾暴露您的本地服務(wù)和增加安全性。同時,ngrok的安裝和使用也非常簡單,只需幾個簡單的步驟即可啟動。通過快速啟動ngrok,可以讓Linux更加高效,提高您的工作效率。
相關(guān)問題拓展閱讀:
- cmd無法識別ngrok命令是什么情況
- 如何本地調(diào)試微信接口
cmd無法識別ngrok命令是什么情況
要先進到ngrok.cfg的路徑下,在執(zhí)行命令才行。
要先進到ngrok.cfg的路徑下,在執(zhí)行命令才行。
ngrok配置方法
1、下載ngrok源碼
(GOPATH=~/goproj)
$ mkdir ~/goproj/src/github.com/inconshreveable
$ git clone
$ export GOPATH=~/goproj/src/github.com/inconshreveable/ngrok
2、生成自簽名證書
使用ngrok.com官方服務(wù)時,我們使鄭悄租用的是官方的SSL證書。自建ngrokd服務(wù),我們需要生成自己的證書,并提供攜帶該證書的ngrok客戶端。
證書生成過程需要一個NGROK_BASE_DOMAIN。 以ngrok官方隨機生成的地址693c358d.ngrok.com為喊兆例,其NGROK_BASE_DOMAIN就是”ngrok.com”,如果你要 提供服務(wù)的地址為”example.tunnel.tonybai.com”,那NGROK_BASE_DOMAIN就應(yīng)該 是”tunnel.tonybai.com”。
我們這里以NGROK_BASE_DOMAIN=”tunnel.tonybai.com”為例,生成證書的命令如下:
$ cd ~/goproj/src/github.com/inconshreveable/ngrok
$ openssl genrsa -out rootCA.key 2023
$ openssl req -x509 -new -nodes -key rootCA.key -subj “/CN=tunnel.tonybai.com” -daysout rootCA.pem
$ openssl genrsa -out device.key 2023
$ openssl req -new -key device.key -subj “/CN=tunnel.tonybai.com” -out device.csr
$ openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
執(zhí)行完以運穗上命令,在ngrok目錄下就會新生成6個文件:
-rw-rw-r– 1 ubuntu ubuntu 1001 Mar 14 02:22 device.crt
-rw-rw-r– 1 ubuntu ubuntu 903 Mar 14 02:22 device.csr
-rw-rw-r– 1 ubuntu ubuntu 1679 Mar 14 02:22 device.key
-rw-rw-r– 1 ubuntu ubuntu 1679 Mar 14 02:21 rootCA.key
-rw-rw-r– 1 ubuntu ubuntu 1119 Mar 14 02:21 rootCA.pem
-rw-rw-r– 1 ubuntu ubuntu 17 Mar 14 02:22 rootCA.srl
ngrok通過bindata將ngrok源碼目錄下的assets目錄(資源文件)打包到可執(zhí)行文件(ngrokd和ngrok)中 去,assets/client/tls和assets/server/tls下分別存放著用于ngrok和ngrokd的默認(rèn)證書文件,我們需要將它們替換成我們自己生成的:(因此這一步務(wù)必放在編譯可執(zhí)行文件之前)
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key
3、編譯ngrokd和ngrok
在ngrok目錄下執(zhí)行如下命令,編譯ngrokd:
$ make release-server
不過在我的AWS上,出現(xiàn)如下錯誤:
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: Error 127
go-bindata被安裝到了$GOBIN下了,go編譯器找不到了。修正方法是將$GOBIN/go-bindata拷貝到當(dāng)前ngrok/bin下。
$ cp /home/ubuntu/.bin/go14/bin/go-bindata ./bin
再次執(zhí)行make release-server。
~/goproj/src/github.com/inconshreveable/ngrok$ make release-server
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/…
code.google.com/p/log4go (download)
go: missing Mercurial command. See
package code.google.com/p/log4go: exec: “hg”: executable file not found in $PATH
github.com/gorilla/websocket (download)
github.com/inconshreveable/go-update (download)
github.com/kardianos/osext (download)
github.com/kr/binarydist (download)
github.com/inconshreveable/go-vhost (download)
github.com/inconshreveable/mousetrap (download)
github.com/nsf/termbox-go (download)
github.com/mattn/go-runewidth (download)
github.com/rcrowley/go-metrics (download)
Fetching
Parsing meta tags from
(status code 200)
get “gopkg.in/yaml.v1″: found meta tag main.metaImport{Prefix:”gopkg.in/yaml.v1″, VCS:”git”, RepoRoot:”
“} at
gopkg.in/yaml.v1 (download)
make: Error 1
又出錯!提示找不到hg,原來是aws上沒有安裝hg。install hg后(sudo apt-get install mercurial),再編譯。
$ make release-server
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/…
code.google.com/p/log4go (download)
go install -tags ‘release’ ngrok/main/ngrokd
同樣編譯ngrok:
$ make release-client
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/ngrok
AWS上ngrokd和ngrok被安裝到了$GOBIN下。
三、調(diào)試
1、啟動ngrokd
$ ngrokd -domain=”tunnel.tonybai.com” -httpAddr=”:8080″ -httpsAddr=”:8081″
No affinity cache specified
Reporting every 30 seconds
Listening for public http connections on :8080
Listening for public https connections on :8081
Listening for control and proxy connections on :4443
如何本地調(diào)試微信接口
本地調(diào)試微信接口方法如下:
要解決微信本地開發(fā),一個關(guān)鍵的問題是能夠把本地的IP地址映射到公網(wǎng)上去,從網(wǎng)上找下相關(guān)的解決方案,最終借助ngrok很容易解決
windows–>運行–>cmd,進入到ngrok.exe的根目錄,輸入ngrok 80,這樣可以將本機的127.0.0.1:80分配一個外網(wǎng)可以訪問的域名
遺憾的是該域名是隨機的,每次重啟都會變,這不利于我們微信調(diào)試,所以我們希望將域名固定住,仔細查看ngrok官網(wǎng),ngrok已經(jīng)給我們了解決方案,需要我們注冊下
注笑磨歷冊成功后,會得到一個token
還是在windows–>運游攜行–>cmd中,進入ngrok.exe目錄,輸入:
ngrok -authtoken token 80
其中token換成我們注冊后返回的值,回車后,成功啟動
但是返回的token太長了,不方便記憶,我們換一個方便記憶的名字,輸入
ngrok -subdomain leopard 80
回車后,成功啟動,下面我們需要驗證下輸入域名
打開微信公眾平臺,選擇開發(fā)者中心,在右邊的表單中輸入相關(guān)內(nèi)容,URL中輸碰搜入我們剛設(shè)置過的域名
提交成功,說明我們的設(shè)置是有效的,此時已經(jīng)在tomcat中可以看到我們在get方法下的返回值
方法/步驟
要解決微信兄晌本地開發(fā),一個關(guān)鍵的問題是能夠把本地的IP地址映射到公網(wǎng)上去,從網(wǎng)上找下相關(guān)的解決方案,最終借助ngrok很容易解決,訪問官網(wǎng)
下載ngrok,解壓后只有ngrok.exe一個文件
windows–>運行–>cmd,進入到ngrok.exe的根目錄,輸入ngrok 80,這樣可以將本機的127.0.0.1:80分配一個外網(wǎng)可以訪問的域名
遺憾的是該域名是隨機的,每次重啟都會變,這不利于我們微信調(diào)試,所以我們希望將域名固定住,仔細查看ngrok官網(wǎng),ngrok已經(jīng)給我們了解決方案,需要我們注冊下
注冊成功后,會得到一個token
還是在windows–>運行–>cmd中,進入ngrok.exe目錄,輸入:
ngrok -authtoken token 80
其中token換成我們注冊后返頃塵物回的值,回車后,成功啟動
但是返回的token太長了,不方便記憶,我們換一個方便記憶的名字,輸入
ngrok -subdomain leopard 80
回車后,成功啟動,下面我們需要驗證下輸入域名:
是否能夠通過微信的URL校驗
打開微信公眾平臺,選擇開發(fā)者中心,在右邊的表單中輸入相關(guān)內(nèi)容,雀液URL中輸入我們剛設(shè)置過的域名
提交成功,說明我們的設(shè)置是有效的,此時已經(jīng)在tomcat中可以看到我們在get方法下的返回值
方法/步驟
要解決微信兄晌本地開發(fā),一個關(guān)鍵的問題是能夠把本地的IP地址映射到公網(wǎng)上去,從網(wǎng)上找下相關(guān)的解決方案,最終借助ngrok很容易解決,訪問官網(wǎng)
下載ngrok,解壓后只有ngrok.exe一個文件
windows–>運行–>cmd,進入到ngrok.exe的根目錄,輸入ngrok 80,這樣可以將本機的127.0.0.1:80分配一個外網(wǎng)可以訪問的域名
遺憾的是該域名是隨機的,每次重啟都會變,這不利于我們微信調(diào)試,所以我們希望將域名固定住,仔細查看ngrok官網(wǎng),ngrok已經(jīng)給我們了解決方案,需要我們注冊下
注冊成功后,會得到一個token
還是在windows–>運行–>cmd中,進入ngrok.exe目錄,輸入:
ngrok -authtoken token 80
其中token換成我們注冊后返頃塵物回的值,回車后,成功啟動
但是返回的token太長了,不方便記憶,我們換一個方便記憶的名字,輸入
ngrok -subdomain leopard 80
回車后,成功啟動,下面我們需要驗證下輸入域名:
是否能夠通過微信的URL校驗
打開微信公眾平臺,選擇開發(fā)者中心,在右邊的表單中輸入相關(guān)內(nèi)容,雀液URL中輸入我們剛設(shè)置過的域名
提交成功,說明我們的設(shè)置是有效的,此時已經(jīng)在tomcat中可以看到我們在get方法下的返回值
1、首先可以直接申請公眾測試號進行開巧渣發(fā);
2、在公眾測試號下,除配置的微信服務(wù)端推脊物送數(shù)據(jù)的80端口服務(wù)外,其他安全域名和菜櫻寬液單的訪問地址,都可設(shè)置為本地服務(wù)地址進行開發(fā)和測試。
ngrok linux 啟動的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于ngrok linux 啟動,快速啟動ngrok:使Linux更高效,cmd無法識別ngrok命令是什么情況,如何本地調(diào)試微信接口的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級標(biāo)準(zhǔn)機房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達10T,機柜接入千兆交換機,能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
分享標(biāo)題:快速啟動ngrok:使Linux更高效(ngroklinux啟動)
標(biāo)題路徑:http://fisionsoft.com.cn/article/cdccigp.html


咨詢
建站咨詢
