Ngrok - 內(nèi)網(wǎng)穿透工具使用介紹

1. 概述

ngrok

開源的內(nèi)網(wǎng)穿透工具有很多,例如ngrok草丧、frp狸臣、lanproxy、goproxy昌执、nps等烛亦。

  • fatedier/frp
    frp is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the Internet. As of now, it supports TCP and UDP, as well as HTTP and HTTPS protocols, where requests can be forwarded to internal services by domain name.
    Frp also has a P2P connect mode.
  • inconshreveable/ngrok
    ngrok is a reverse proxy that creates a secure tunnel from a public endpoint to a locally running web service. ngrok captures and analyzes all traffic over the tunnel for later inspection and replay.
  • snail007/goproxy
    The GoProxy is a high-performance http proxy, https proxy, socks5 proxy, ss proxy, websocket proxies, tcp proxies, udp proxies, game shield, game proxies

其中,F(xiàn)rp的使用方法可以參考我之前的文章《Frp - 內(nèi)網(wǎng)穿透工具使用介紹》懂拾,更深入的用法煤禽,可以閱讀官方文檔。

Ngrok的商業(yè)化工作做得不錯(cuò)岖赋∶使可以在不部署公網(wǎng)服務(wù)的情況下,免費(fèi)使用NAT穿透功能贾节。
有兩家基于Ngrok的商業(yè)應(yīng)用汁汗,本文重點(diǎn)介紹第一家:

  • ngrok
    Ngrok團(tuán)隊(duì)提供的,基于ngrok 2.x栗涂,ngrok 1.x開源版本已經(jīng)不維護(hù)知牌,2.x好像不開源
  • NATAPP
    內(nèi)網(wǎng)穿透 基于ngrok 1.7版本的國內(nèi)高速內(nèi)網(wǎng)映射工具

參考:內(nèi)網(wǎng)穿透工具比較(ngrok,frp,lanproxy,goproxy,nps)

2. Setup與Http服務(wù)代理介紹

2.1. Setup

注冊并登錄ngrok官網(wǎng),可以看到ngrok dashboard頁面斤程。
通過Dashboard角寸,可以下載不同Desktop的運(yùn)行程序,可以查看自己Authtoken忿墅,可以查看已創(chuàng)建的Tunnel

image.png

image.png

2.2. 啟動(dòng)需要Nat外被遠(yuǎn)程訪問的Http服務(wù)

  • Python2啟動(dòng)方式扁藕,F(xiàn)or Test
$ python -m SimpleHTTPServer 8001
Serving HTTP on 0.0.0.0 port 8001 ...
10.210.10.183 - - [09/Apr/2021 09:36:15] "GET / HTTP/1.1" 200 -
  • Python3啟動(dòng)方式,F(xiàn)or Test
$ python -m http.server 8001
Serving HTTP on 0.0.0.0 port 8001 ...
10.210.10.183 - - [09/Apr/2021 09:36:15] "GET / HTTP/1.1" 200 -

2.3. 啟動(dòng)Ngrok服務(wù)疚脐,本機(jī)需要能夠訪問到Ngrok官方服務(wù)亿柑,否則,可以借用http_proxy或者其他proxy

$ ./ngrok http 8001
ngrok by @inconshreveable                                                                                                                                                                        (Ctrl+C to quit)                                                                                                                                                                                                                 Session Status                online
Account                       shuzhang (Plan: Free)
Version                       2.3.39
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://3a2dbc150775.ngrok.io -> http://localhost:8001
Forwarding                    https://3a2dbc150775.ngrok.io -> http://localhost:8001

Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00

2.4. 本地打開Console頁面(http://127.0.0.1:4040/status)棍弄,可以查看Tunnel狀態(tài)

image.png

2.5. 關(guān)鍵一步望薄,調(diào)用http請求http://3a2dbc150775.ngrok.io,結(jié)果OK

image.png

3. 其他用法

3.1. ngrok help呼畸,查看推薦用法

$ ./ngrok help
...
    ngrok http 80                    # secure public URL for port 80 web server
    ngrok http -subdomain=baz 8080   # port 8080 available at baz.ngrok.io
    ngrok http foo.dev:80            # tunnel to host:port instead of localhost
    ngrok http https://localhost     # expose a local https server
    ngrok tcp 22                     # tunnel arbitrary TCP traffic to port 22
    ngrok tls -hostname=foo.com 443  # TLS traffic for foo.com to port 443
    ngrok start foo bar baz          # start tunnels from the configuration file
...

3.2. 編寫ngrok.yml痕支,同時(shí)啟動(dòng)一組Tunnel

3.2.1. 編寫ngrok.yml

$ cat ~/.ngrok2/ngrok.yml
authtoken: 1quWLs7sdwwz4xxxxxxxxxxxxxHX_osfdsdfd56scfwrwerQH1Jt
http_proxy: "http://10.xxx.yyy.zzz:8000"
web_addr: 0.0.0.0:4040
tunnels:
  test-http:
    addr: 127.0.0.1:8001
    proto: http
    inspect: true
    bind_tls: both
  test-ssh:
    addr: 127.0.0.1:22
    proto: tcp

3.2.2. 啟動(dòng)所有所有Tunnel,也可以啟動(dòng)部分

$ ./ngrok start --all
ngrok by @inconshreveable                                                                (Ctrl+C to quit)
                                                                                                         
Session Status                online                                                                     
Account                       shuzhang (Plan: Free)                                                      
Version                       2.3.38                                                                     
Region                        United States (us)                                                         
Web Interface                 http://0.0.0.0:4040                                                        
Forwarding                    http://84dc8148b639.ngrok.io -> http://127.0.0.1:8001                      
Forwarding                    https://84dc8148b639.ngrok.io -> http://127.0.0.1:8001                     
                                                                                                         
Connections                   ttl     opn     rt1     rt5     p50     p90                                
                              7       0       0.00    0.01    0.00    0.00                               
                                                                                                         
HTTP Requests                                                                                            
-------------                                                                                            
                                                                                                         
GET /                          200 OK                                                                    
GET /                          200 OK                                                                    
GET /                          200 OK

4. References

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蛮原,一起剝皮案震驚了整個(gè)濱河市卧须,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖花嘶,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笋籽,死亡現(xiàn)場離奇詭異,居然都是意外死亡察绷,警方通過查閱死者的電腦和手機(jī)干签,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門津辩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拆撼,“玉大人,你說我怎么就攤上這事喘沿≌⒍龋” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵蚜印,是天一觀的道長莺禁。 經(jīng)常有香客問我,道長窄赋,這世上最難降的妖魔是什么哟冬? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮忆绰,結(jié)果婚禮上浩峡,老公的妹妹穿的比我還像新娘。我一直安慰自己错敢,他們只是感情好翰灾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著稚茅,像睡著了一般纸淮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上亚享,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天咽块,我揣著相機(jī)與錄音,去河邊找鬼欺税。 笑死侈沪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的魄衅。 我是一名探鬼主播峭竣,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晃虫!你這毒婦竟也來了皆撩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扛吞,沒想到半個(gè)月后呻惕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滥比,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年亚脆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盲泛。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡濒持,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寺滚,到底是詐尸還是另有隱情柑营,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布村视,位于F島的核電站官套,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蚁孔。R本人自食惡果不足惜奶赔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望杠氢。 院中可真熱鬧站刑,春花似錦、人聲如沸修然。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愕宋。三九已至玻靡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間中贝,已是汗流浹背囤捻。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留邻寿,地道東北人蝎土。 一個(gè)月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像绣否,于是被迫代替她去往敵國和親誊涯。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容