讓你的工作更高效锅知!快來看看如何使用內(nèi)網(wǎng)穿透

什么是內(nèi)網(wǎng)穿透

內(nèi)網(wǎng)穿透播急,也即 NAT 穿透,進行 NAT 穿透是為了使具有某一個特定源 IP 地址和源端口號的數(shù)據(jù)包不被 NAT 設(shè)備屏蔽而正確路由到內(nèi)網(wǎng)主機售睹。
通俗的講桩警,內(nèi)網(wǎng)穿透其實就是兩臺計算機都處于不同的局域網(wǎng)之中,外網(wǎng)與內(nèi)網(wǎng)的計算機節(jié)點需要連接通信昌妹,那么就需要借助內(nèi)網(wǎng)穿透技術(shù)來解決這個問題捶枢,也叫NAT穿透。我們可能使用過的現(xiàn)有的軟件飞崖,比如teamview,qq遠程連接烂叔,都是基于內(nèi)網(wǎng)穿透實現(xiàn)的。

使用場景

1.開發(fā)微信公眾號固歪,你可能跑了一個本地服務(wù)蒜鸡,還沒有上線,但是需要調(diào)試牢裳,調(diào)試需要一個公網(wǎng)可以訪問的域名逢防。但是一般來說,外網(wǎng)訪問不了你本地的服務(wù)蒲讯。那么這個時候就可以通過一個公網(wǎng)服務(wù)器胞四,通過端口轉(zhuǎn)發(fā),實現(xiàn)這個功能
2.周末在家伶椿,忽然接到通知辜伟,要跑一個服務(wù)器的腳本,或者改一段代碼脊另,腳本或者代碼在公司的內(nèi)網(wǎng)服務(wù)器导狡,在家怎么訪問呢?這個時候我們就可以用到ssh的隧道代理偎痛。

案例一: ngrok 其他參考

Ngrok 是一個反向代理軟件旱捧,啟動后會在公共服務(wù)器和本地客戶端之間建立一個通道,并由公共服務(wù)器分配一個唯一的域名給這個通道踩麦。在 Homestead 中運行 Ngrok 之后枚赡,通過公共服務(wù)器分配的域名就可以在公網(wǎng)訪問到 Homestead 中的站點,從而讓支付寶和微信支付的服務(wù)器直接將回調(diào)數(shù)據(jù)發(fā)送到對應(yīng)的回調(diào)接口谓谦。

  • 注冊地址點擊注冊

  • 注冊完畢 下載對應(yīng)的文件


    在這里插入圖片描述
  • 我是在mac上使用的贫橙,直接下載一個壓縮包,解壓后里面就是執(zhí)行文件
    1.解壓

unzip /path/to/ngrok.zip

2.配置權(quán)限校驗(authtoken 注冊后會提供)

./ngrok authtoken xxxxxx

3.啟動和查看幫助

# 查看幫助
./ngrok help
# 監(jiān)聽80端口
./ngrok http 80反粥,-host-header表示你本地的域名卢肃,不用域名 直接訪問端口也可以 疲迂,-region us是指代理地址是美國 80代表80端口,除了協(xié)議和端口外莫湘,都是可以缺省的
# http 是連接協(xié)議尤蒿,
ngrok http -host-header=shop.test -region us 80

  • 代理本地的80端口
./ngrok http 80

ngrok by @inconshreveable                                                              (Ctrl+C to quit)

Session Status                online
#賬戶名
Account                       xxxx@gmail.com (Plan: Free)
Version                       2.3.40
# 這個是代理地址的國家
Region                        United States (us)

# 這個是web管理頁面,可以查看訪問信息
Web Interface                 http://127.0.0.1:4040
#這個就是代理地址幅垮,代理的是本地80端口
Forwarding                    http://14a4-222-129-1-243.ngrok.io -> http://localhost:80
Forwarding                    https://14a4-222-129-1-243.ngrok.io -> http://localhost:80

Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00
  • 我們打開web地址看一下,就是4040端口
在這里插入圖片描述
  • 這時我們請求一個地址 發(fā)現(xiàn)報錯了腰池,說我的80端口不能訪問,因為80端口沒啟用

  • 在這里插入圖片描述
  • 終端console 的信息如下


    在這里插入圖片描述
  • 那我們用go 簡單寫一個可以使用的http 服務(wù)忙芒,20行代碼巩螃。代碼如下

package main

import (
    "io"
    "log"
    "net/http"
)
/**
 * @Description: 寫一個簡單版本的web服務(wù)
 */
func main()  {
    http.HandleFunc("/",Hello)//指定路由處理
    err:=http.ListenAndServe(":8889",nil)//建立端口監(jiān)聽服務(wù)
    if err !=nil{
        log.Fatal("ListenAndServe error:",err)
    }

}
//接收請求 返回hello world
func Hello(w http.ResponseWriter,req * http.Request)  {
    io.WriteString(w,"技術(shù)小蟲說:hello word\n")
}
  • 我們的程序監(jiān)聽的是8889端口,訪問一下看看


    在這里插入圖片描述
  • 接下來我們把 ngrok 代理到8889端口


    在這里插入圖片描述
  • 可以正常相應(yīng)8889


    在這里插入圖片描述
在這里插入圖片描述

案例二:ssh內(nèi)網(wǎng)穿透

  • 為了盡可能還原匕争,我在我的電腦上創(chuàng)建一臺ubuntu虛擬機避乏,我的電腦(LocalA macos )和ubuntu(LocalB)虛擬機網(wǎng)絡(luò)無法通信

  • 一臺有獨立ip 的服務(wù)器(RemoteC),我的電腦可以訪問到甘桑,虛擬機也可以訪問到

  • 先來看一個簡單版的本地端口轉(zhuǎn)發(fā)(LocalA 執(zhí)行)

ssh -L 2222:localhost:22 root@122.22.22.122 //當本地2222端口被訪問的時候拍皮,請求會被轉(zhuǎn)發(fā)RemoteC的22端口,需要輸入RemoteC的密碼 

guofu@guofu-Inspiron-3558 ~ $ ssh -p 2222 root@localhost
root@localhost's password: # 需要輸入RemoteC的密碼跑杭,因為是2222轉(zhuǎn)發(fā)到了124的22
  • 再來看一個遠程接口轉(zhuǎn)發(fā)(LocalB執(zhí)行)
ssh -R 8080:localhost:80 root@122.22.22.122  # RemoteC訪問8080端口 會被轉(zhuǎn)發(fā)到LocalB的80端口铆帽,這個其實就是 ngrok的實現(xiàn)方式
  • 在RomoteC 訪問8080端口


    在這里插入圖片描述

    在這里插入圖片描述
  • 下面演示另一種情況,我通過RemoteC 訪問 LocalB的22端口

1.在LocalB 執(zhí)行

guofu@guofu:~$ ssh -fNTCR localhost:2222:localhost:22 root@122.22.22.122    #當RemoteC訪問2222端口德谅,就會被轉(zhuǎn)發(fā)到LocalB的22端口爹橱,需要輸入RemoteC的root 密碼                                                                                                                    

2.然后我們登錄RemoteC,訪問2222端口看看能否被轉(zhuǎn)發(fā)到LocalB的22端口,顯示進入了ubuntu機器窄做,其實是利用了RemoteC 做跳板機登錄

[root@iZ2ze32d6gy2re63vx8froZ ~]# ssh -p 2222 guofu@localhost
guofu@localhost's password: #此處輸入LocalB的guofu的密碼
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-132-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
在這里插入圖片描述
  • 現(xiàn)在我們在LocalA 訪問LocalB 怎么操作呢
    1.在RemoteC上面做一個端口轉(zhuǎn)發(fā)
ssh -fNTCL *:2221:localhost:2222 root@localhost  #如果有請求RemoteC的2221的請求時愧驱,轉(zhuǎn)發(fā)到2222端口 端口2222就會被轉(zhuǎn)發(fā)到 LocalB的22端口,實現(xiàn)ssh登錄

2.在LocalA通過ssh 訪問2221端口

ssh -p 2221 guofu@122.22.22.122

3.登錄成功

在這里插入圖片描述

其他方案

其他的成熟的服務(wù)椭盏,比如frp组砚,蜻蜓映射,natapp等掏颊,有興趣的可以進一步了解

小結(jié)

本文只是簡單的展示了內(nèi)網(wǎng)穿透的實現(xiàn)方案糟红,但是實際應(yīng)用中,我們還要關(guān)注內(nèi)網(wǎng)穿透帶來的安全問題乌叶,和服務(wù)的持續(xù)連接問題盆偿,可以參考這篇文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市准浴,隨后出現(xiàn)的幾起案子事扭,更是在濱河造成了極大的恐慌,老刑警劉巖兄裂,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件句旱,死亡現(xiàn)場離奇詭異阳藻,居然都是意外死亡晰奖,警方通過查閱死者的電腦和手機谈撒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匾南,“玉大人啃匿,你說我怎么就攤上這事∏悖” “怎么了溯乒?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長豹爹。 經(jīng)常有香客問我裆悄,道長,這世上最難降的妖魔是什么臂聋? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任光稼,我火速辦了婚禮,結(jié)果婚禮上孩等,老公的妹妹穿的比我還像新娘艾君。我一直安慰自己,他們只是感情好肄方,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布冰垄。 她就那樣靜靜地躺著,像睡著了一般权她。 火紅的嫁衣襯著肌膚如雪虹茶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天隅要,我揣著相機與錄音写烤,去河邊找鬼。 笑死拾徙,一個胖子當著我的面吹牛洲炊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播尼啡,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼暂衡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了崖瞭?” 一聲冷哼從身側(cè)響起狂巢,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎书聚,沒想到半個月后唧领,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體藻雌,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年斩个,在試婚紗的時候發(fā)現(xiàn)自己被綠了胯杭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡受啥,死狀恐怖做个,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情滚局,我是刑警寧澤居暖,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站藤肢,受9級特大地震影響太闺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嘁圈,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一省骂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丑孩,春花似錦冀宴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至仗岖,卻和暖如春逃延,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背轧拄。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工揽祥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人檩电。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓拄丰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親俐末。 傳聞我的和親對象是個殘疾皇子料按,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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