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

一、什么是ngrok?
ngrok是一個(gè)反向代理,它可以將您的本地網(wǎng)絡(luò)服務(wù)暴露給公眾的Internet,從而使得您的本地服務(wù)全球可用。ngrok是由Alan Shreve開(kāi)發(fā)的,它使用Go語(yǔ)言編寫(xiě),是開(kāi)源軟件之一。
ngrok底層的原理較為簡(jiǎn)單,它使用公共的ngrok服務(wù)器分配一個(gè)隨機(jī)端口,并且綁定到您的本地服務(wù)端口。它使用了一種稱為隧道技術(shù)的技術(shù),可以構(gòu)建一個(gè)安全的網(wǎng)絡(luò)連接,即使不使用公共的IP或DNS也可以訪問(wèn)您的服務(wù)。
二、為什么要使用ngrok?
1. 繞過(guò)防火墻限制
許多公司和組織都限制了訪問(wèn)外部服務(wù)器的權(quán)限,以保證網(wǎng)絡(luò)安全。使用ngrok可以繞過(guò)這些限制,訪問(wèn)您的本地網(wǎng)絡(luò)服務(wù)。
2. 向公眾暴露您的本地服務(wù)
如果您想在本地開(kāi)發(fā)和測(cè)試一個(gè)Web應(yīng)用程序,那么這個(gè)應(yīng)用程序只能在您的本地機(jī)上運(yùn)行。使用ngrok可以將您的本地應(yīng)用程序暴露給公共網(wǎng)絡(luò),讓其他用戶也能訪問(wèn)。
3. 增加安全性
ngrok采用了安全的網(wǎng)絡(luò)連接,可以防止通過(guò)公共網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)被攔截或篡改。
4. 輕松使用
ngrok的安裝和使用非常簡(jiǎn)單,可以快速地啟動(dòng),快速地停止。
三、如何快速啟動(dòng)ngrok
ngrok的安裝和啟動(dòng)十分簡(jiǎn)單,只需幾個(gè)簡(jiǎn)單的步驟。
1. 下載ngrok
首先需要下載ngrok,可以從官網(wǎng)下載:https://ngrok.com/download。
2. 解壓ngrok
在下載完成后,需要解壓ngrok文件。在解壓后的文件夾中,您會(huì)找到一個(gè)名為“ngrok”的二進(jìn)制文件。
3. 注冊(cè)ngrok賬戶
在啟動(dòng)ngrok之前,需要注冊(cè)一個(gè)賬戶。在官網(wǎng)上進(jìn)行注冊(cè),注冊(cè)后可以使用已注冊(cè)的郵箱地址登錄ngrok客戶端。
4. 啟動(dòng)ngrok
啟動(dòng)ngrok需要通過(guò)執(zhí)行命令行命令來(lái)完成。輸入以下命令:
./ngrok authtoken [your-auth-token]
然后再輸入命令:
./ngrok [protocol] [local-port]
其中,[protocol]可以是http或者h(yuǎn)ttps,并且不區(qū)分大小寫(xiě)。
[local-port]是您要暴露的本地服務(wù)端口,如8080。
如果您的Web服務(wù)器已經(jīng)運(yùn)行,那么在運(yùn)行ngrok后,終端就會(huì)顯示一個(gè)可訪問(wèn)的URL地址。通過(guò)這個(gè)URL地址可以訪問(wèn)您的本地服務(wù)。
ngrok是一個(gè)功能強(qiáng)大的反向代理,可以將您的本地服務(wù)暴露給公共網(wǎng)絡(luò),使得您的本地服務(wù)全球可用。使用ngrok可以繞過(guò)防火墻限制,向公眾暴露您的本地服務(wù)和增加安全性。同時(shí),ngrok的安裝和使用也非常簡(jiǎn)單,只需幾個(gè)簡(jiǎn)單的步驟即可啟動(dòng)。通過(guò)快速啟動(dòng)ngrok,可以讓Linux更加高效,提高您的工作效率。
相關(guān)問(wèn)題拓展閱讀:
- cmd無(wú)法識(shí)別ngrok命令是什么情況
- 如何本地調(diào)試微信接口
cmd無(wú)法識(shí)別ngrok命令是什么情況
要先進(jìn)到ngrok.cfg的路徑下,在執(zhí)行命令才行。
要先進(jìn)到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、生成自簽名證書(shū)
使用ngrok.com官方服務(wù)時(shí),我們使鄭悄租用的是官方的SSL證書(shū)。自建ngrokd服務(wù),我們需要生成自己的證書(shū),并提供攜帶該證書(shū)的ngrok客戶端。
證書(shū)生成過(guò)程需要一個(gè)NGROK_BASE_DOMAIN。 以ngrok官方隨機(jī)生成的地址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”為例,生成證書(shū)的命令如下:
$ 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í)行完以運(yùn)穗上命令,在ngrok目錄下就會(huì)新生成6個(gè)文件:
-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通過(guò)bindata將ngrok源碼目錄下的assets目錄(資源文件)打包到可執(zhí)行文件(ngrokd和ngrok)中 去,assets/client/tls和assets/server/tls下分別存放著用于ngrok和ngrokd的默認(rèn)證書(shū)文件,我們需要將它們替換成我們自己生成的:(因此這一步務(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
不過(guò)在我的AWS上,出現(xiàn)如下錯(cuò)誤:
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
又出錯(cuò)!提示找不到hg,原來(lái)是aws上沒(méi)有安裝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、啟動(dòng)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)試微信接口方法如下:
要解決微信本地開(kāi)發(fā),一個(gè)關(guān)鍵的問(wèn)題是能夠把本地的IP地址映射到公網(wǎng)上去,從網(wǎng)上找下相關(guān)的解決方案,最終借助ngrok很容易解決
windows–>運(yùn)行–>cmd,進(jìn)入到ngrok.exe的根目錄,輸入ngrok 80,這樣可以將本機(jī)的127.0.0.1:80分配一個(gè)外網(wǎng)可以訪問(wèn)的域名
遺憾的是該域名是隨機(jī)的,每次重啟都會(huì)變,這不利于我們微信調(diào)試,所以我們希望將域名固定住,仔細(xì)查看ngrok官網(wǎng),ngrok已經(jīng)給我們了解決方案,需要我們注冊(cè)下
注笑磨歷冊(cè)成功后,會(huì)得到一個(gè)token
還是在windows–>運(yùn)游攜行–>cmd中,進(jìn)入ngrok.exe目錄,輸入:
ngrok -authtoken token 80
其中token換成我們注冊(cè)后返回的值,回車后,成功啟動(dòng)
但是返回的token太長(zhǎng)了,不方便記憶,我們換一個(gè)方便記憶的名字,輸入
ngrok -subdomain leopard 80
回車后,成功啟動(dòng),下面我們需要驗(yàn)證下輸入域名
打開(kāi)微信公眾平臺(tái),選擇開(kāi)發(fā)者中心,在右邊的表單中輸入相關(guān)內(nèi)容,URL中輸碰搜入我們剛設(shè)置過(guò)的域名
提交成功,說(shuō)明我們的設(shè)置是有效的,此時(shí)已經(jīng)在tomcat中可以看到我們?cè)趃et方法下的返回值
方法/步驟
要解決微信兄晌本地開(kāi)發(fā),一個(gè)關(guān)鍵的問(wèn)題是能夠把本地的IP地址映射到公網(wǎng)上去,從網(wǎng)上找下相關(guān)的解決方案,最終借助ngrok很容易解決,訪問(wèn)官網(wǎng)
下載ngrok,解壓后只有ngrok.exe一個(gè)文件
windows–>運(yùn)行–>cmd,進(jìn)入到ngrok.exe的根目錄,輸入ngrok 80,這樣可以將本機(jī)的127.0.0.1:80分配一個(gè)外網(wǎng)可以訪問(wèn)的域名
遺憾的是該域名是隨機(jī)的,每次重啟都會(huì)變,這不利于我們微信調(diào)試,所以我們希望將域名固定住,仔細(xì)查看ngrok官網(wǎng),ngrok已經(jīng)給我們了解決方案,需要我們注冊(cè)下
注冊(cè)成功后,會(huì)得到一個(gè)token
還是在windows–>運(yùn)行–>cmd中,進(jìn)入ngrok.exe目錄,輸入:
ngrok -authtoken token 80
其中token換成我們注冊(cè)后返頃塵物回的值,回車后,成功啟動(dòng)
但是返回的token太長(zhǎng)了,不方便記憶,我們換一個(gè)方便記憶的名字,輸入
ngrok -subdomain leopard 80
回車后,成功啟動(dòng),下面我們需要驗(yàn)證下輸入域名:
是否能夠通過(guò)微信的URL校驗(yàn)
打開(kāi)微信公眾平臺(tái),選擇開(kāi)發(fā)者中心,在右邊的表單中輸入相關(guān)內(nèi)容,雀液URL中輸入我們剛設(shè)置過(guò)的域名
提交成功,說(shuō)明我們的設(shè)置是有效的,此時(shí)已經(jīng)在tomcat中可以看到我們?cè)趃et方法下的返回值
方法/步驟
要解決微信兄晌本地開(kāi)發(fā),一個(gè)關(guān)鍵的問(wèn)題是能夠把本地的IP地址映射到公網(wǎng)上去,從網(wǎng)上找下相關(guān)的解決方案,最終借助ngrok很容易解決,訪問(wèn)官網(wǎng)
下載ngrok,解壓后只有ngrok.exe一個(gè)文件
windows–>運(yùn)行–>cmd,進(jìn)入到ngrok.exe的根目錄,輸入ngrok 80,這樣可以將本機(jī)的127.0.0.1:80分配一個(gè)外網(wǎng)可以訪問(wèn)的域名
遺憾的是該域名是隨機(jī)的,每次重啟都會(huì)變,這不利于我們微信調(diào)試,所以我們希望將域名固定住,仔細(xì)查看ngrok官網(wǎng),ngrok已經(jīng)給我們了解決方案,需要我們注冊(cè)下
注冊(cè)成功后,會(huì)得到一個(gè)token
還是在windows–>運(yùn)行–>cmd中,進(jìn)入ngrok.exe目錄,輸入:
ngrok -authtoken token 80
其中token換成我們注冊(cè)后返頃塵物回的值,回車后,成功啟動(dòng)
但是返回的token太長(zhǎng)了,不方便記憶,我們換一個(gè)方便記憶的名字,輸入
ngrok -subdomain leopard 80
回車后,成功啟動(dòng),下面我們需要驗(yàn)證下輸入域名:
是否能夠通過(guò)微信的URL校驗(yàn)
打開(kāi)微信公眾平臺(tái),選擇開(kāi)發(fā)者中心,在右邊的表單中輸入相關(guān)內(nèi)容,雀液URL中輸入我們剛設(shè)置過(guò)的域名
提交成功,說(shuō)明我們的設(shè)置是有效的,此時(shí)已經(jīng)在tomcat中可以看到我們?cè)趃et方法下的返回值
1、首先可以直接申請(qǐng)公眾測(cè)試號(hào)進(jìn)行開(kāi)巧渣發(fā);
2、在公眾測(cè)試號(hào)下,除配置的微信服務(wù)端推脊物送數(shù)據(jù)的80端口服務(wù)外,其他安全域名和菜櫻寬液?jiǎn)蔚脑L問(wèn)地址,都可設(shè)置為本地服務(wù)地址進(jìn)行開(kāi)發(fā)和測(cè)試。
ngrok linux 啟動(dòng)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于ngrok linux 啟動(dòng),快速啟動(dòng)ngrok:使Linux更高效,cmd無(wú)法識(shí)別ngrok命令是什么情況,如何本地調(diào)試微信接口的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級(jí)標(biāo)準(zhǔn)機(jī)房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機(jī)柜接入千兆交換機(jī),能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運(yùn)行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
文章名稱:快速啟動(dòng)ngrok:使Linux更高效(ngroklinux啟動(dòng))
網(wǎng)站鏈接:http://m.5511xx.com/article/cdccigp.html


咨詢
建站咨詢
