內(nèi)網(wǎng)穿透神器NPS的使用

內(nèi)網(wǎng)穿透是指將內(nèi)網(wǎng)中的軟件服務(wù)通過網(wǎng)絡(luò)代理方式暴露給廣域網(wǎng)用戶客年。可以實現(xiàn)內(nèi)網(wǎng)穿透的方式很多,比如通過防火墻硬件仅财、網(wǎng)絡(luò)穿透軟件來進行實現(xiàn)膘茎。本文主要介紹通過NPS軟件實現(xiàn)典型的內(nèi)網(wǎng)穿透轧坎。

NPS介紹

nps是一款輕量級煎娇、高性能眉踱、功能強大的內(nèi)網(wǎng)穿透代理服務(wù)器语卤。目前支持tcp追逮、udp流量轉(zhuǎn)發(fā),可支持任何tcp粹舵、udp上層協(xié)議(訪問內(nèi)網(wǎng)網(wǎng)站钮孵、本地支付接口調(diào)試、ssh訪問眼滤、遠程桌面巴席,內(nèi)網(wǎng)dns解析等等……),此外還支持內(nèi)網(wǎng)http代理诅需、內(nèi)網(wǎng)socks5代理漾唉、p2p等,并帶有功能強大的web管理端堰塌。

其官方網(wǎng)站為:https://ehang-io.github.io/nps 其官網(wǎng)文檔對軟件的安裝赵刑、使用描述的非常完整,基本根據(jù)官方文檔就可以進行順利安裝與使用场刑。

基本概念

了解該軟件的使用般此,首先需要了解一個基本的內(nèi)網(wǎng)穿透使用場景。

  • 服務(wù)器端牵现,一般安裝在公網(wǎng)服務(wù)器上铐懊,是所有內(nèi)網(wǎng)資源對外的統(tǒng)一入口。
  • 客戶端瞎疼,一般安裝在內(nèi)網(wǎng)服務(wù)器上科乎,是內(nèi)網(wǎng)服務(wù)器與公網(wǎng)服務(wù)器的橋梁。
  • 客戶端連接端口贼急,客戶端使用該秘鑰連接服務(wù)端連接端口建立長連接茅茂,用于將外網(wǎng)服務(wù)器請求信息轉(zhuǎn)發(fā)至對應(yīng)客戶端捏萍,對應(yīng)客戶端也通過該端口返回相關(guān)信息。
  • 客戶端秘鑰玉吁,在服務(wù)端部署完成后照弥,需要建立客戶端秘鑰,并在客戶端連接時需要使用該秘鑰進行連接进副。

一個服務(wù)器端这揣,可以對應(yīng)多個客戶端。在服務(wù)器端的不同端口影斑,可以映射在不同客戶端的對應(yīng)本地端口之上给赞。

典型場景

本文我們設(shè)計一個最常見的場景,來說明整個軟件的使用過程矫户。我們設(shè)定基本需求如下片迅。

  1. 我們有一臺具備公網(wǎng)IP的服務(wù)器,服務(wù)器名稱為public-server皆辽,操作系統(tǒng)為linux
  2. 我們有兩臺內(nèi)網(wǎng)服務(wù)器inner-server1(linux)柑蛇、inner-server2(windows)
  3. 我們將公網(wǎng)服務(wù)器的8081端口,映射至inner-server1:80;8082端口映射至inner-server2:80端口驱闷。
  4. 兩個代理協(xié)議均為TCP協(xié)議

操作步驟

外網(wǎng)服務(wù)器public-server(linux)服務(wù)端nps安裝

  • 首先耻台,需要登錄其github項目發(fā)布版本頁面 (https://github.com/ehang-io/nps/releases ) 下載對應(yīng)版本服務(wù)端nps軟件。根據(jù)public-server的情況這里我們下載空另,linux_amd64_server.tar.gz版本盆耽。

  • 通過ssh登錄public-server,并將文件上傳至對應(yīng)安裝目錄扼菠,需要首先進行解壓縮摄杂。(假定文件上傳至目錄/usr/nps)

tar -xzvf linux_amd64_server.tar.gz
  • 解壓縮完成后進入解壓目錄,需要執(zhí)行對應(yīng)安裝命令循榆,以保障我們可以將nps相關(guān)命令與加載至bin資源下
sudo ./nps install
  • 之后我們需要啟動相關(guān)服務(wù)端軟件析恢,并在控制臺查看是否啟動成功。
sudo nps start

配置網(wǎng)絡(luò)代理并開啟publiic-server WEB服務(wù)端端口

  • 在啟動成功后秧饮,我們需要打開防火墻8080端口映挂,使得可以通過瀏覽器登錄其管理臺。同時需要打開8024端口浦楣,使得客戶端可以連接到服務(wù)端通訊端口。
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-port=8024/tcp
sudo firewall-cmd --reload 
  • 使用瀏覽器登錄相關(guān)端口咪辱,提示用戶名稱與密碼振劳。使用如下默認用戶名密碼進行登錄。
admin/123
  • 登錄成功后一定要修改相關(guān)密碼油狂,修改配置文件 nps.conf
sudo vim /etc/nps/conf/nps.conf
web_username
web_password
  • 重新啟動相關(guān)服務(wù)并嘗試重新登錄
sudo nps stop
sudo nps start

通過web管理臺配置客戶端接入信息

  • 使用瀏覽器登錄相關(guān)端口历恐,提示用戶名稱與密碼寸癌。使用如下修改后用戶名密碼進行登錄。

  • 點擊 客戶端 -> 新增 弱贼,依次填寫 備注(inner-server1)蒸苇、允許客戶端通過配置文件連接(是)壓縮(是)吮旅、加密(是)溪烤,不填寫Basic 認證用戶名Basic 認證密碼庇勃、唯一驗證密鑰

  • 點擊 客戶端 -> 新增 ,依次填寫 備注(inner-server2)责嚷、允許客戶端通過配置文件連接(是)鸳兽、壓縮(是)加密(是)罕拂,不填寫Basic 認證用戶名揍异、Basic 認證密碼唯一驗證密鑰

  • 新建完成后查看客戶端清單爆班,保存好兩臺服務(wù)器自動生成的唯一驗證密鑰衷掷、客戶端ID備用,在這里我們假定其分別為“client-key”蛋济、"client-id"

內(nèi)網(wǎng)服務(wù)器inner-server1安裝npc(linux)客戶端并連接

  • 需要登錄其github項目發(fā)布版本頁面 ( https://github.com/ehang-io/nps/releases ) 下載對應(yīng)版本客戶端nps軟件棍鳖。根據(jù)public-server的情況這里我們下載,linux_amd64_client.tar.gz 版本碗旅。

  • 通過ssh登錄inner-server1渡处,并將文件上傳至對應(yīng)安裝目錄,需要首先進行解壓縮祟辟。(假定文件上傳至目錄/usr/npc)

tar -xzvf linux_amd64_client.tar.gz
  • 解壓縮完成后進入解壓目錄医瘫,需要執(zhí)行對應(yīng)安裝命令,以保障我們可以將npc相關(guān)命令與加載至bin資源下旧困,同時設(shè)置服務(wù)器ip地址端口以及連接秘鑰(上一步新建客戶端時自動生成并備用的信息)醇份。
sudo ./npc install -server=public-server:8024 -vkey=client-key
  • 之后我們需要啟動相關(guān)服務(wù)端軟件,并在控制臺查看是否啟動成功吼具。
sudo npc stop
sudo npc start

內(nèi)網(wǎng)服務(wù)器inner-server2安裝npc(windows)客戶端并連接

  • 需要登錄其github項目發(fā)布版本頁面 ( https://github.com/ehang-io/nps/releases ) 下載對應(yīng)版本客戶端nps軟件僚纷。根據(jù)public-server的情況這里我們下載,windows_amd64_client.tar.gz 版本拗盒。

  • 通過ssh登錄inner-server1怖竭,并將文件上傳至對應(yīng)安裝目錄,需要首先進行解壓縮陡蝇。(假定文件上傳至目錄D:\npc)

tar -xzvf windows_amd64_client.tar.gz 
  • 解壓縮完成后進入解壓目錄痊臭,需要執(zhí)行對應(yīng)安裝命令哮肚,同時設(shè)置服務(wù)器ip地址端口以及連接秘鑰(上一步新建客戶端時自動生成并備用的信息)。
npc.exe install -server=public-server:8024 -vkey=inner-server2唯一驗證密鑰
  • 之后我們需要啟動相關(guān)服務(wù)端軟件广匙,并在控制臺查看是否啟動成功允趟。
npc.exe stop
npc.exe start

外網(wǎng)服務(wù)器public-server(linux)服務(wù)端端口映射配置

  • 使用瀏覽器登錄相關(guān)端口,提示用戶名稱與密碼鸦致。使用如下修改后用戶名密碼進行登錄潮剪。
  • 在此需要使用到上文談到創(chuàng)建客戶端后自動生成的客戶端ID
  • 選擇TCP 隧道->新增 蹋凝,依次填寫 模式(TCP)鲁纠、客戶端ID(client-id)、備注(inner-server1-80)鳍寂、**服務(wù)端端口(8081)改含、目標(biāo)(127.0.0.1:80)
  • 選擇TCP 隧道->新增 ,依次填寫 模式(TCP)迄汛、客戶端ID(client-id)捍壤、備注(inner-server2-80)、**服務(wù)端端口(8082)鞍爱、目標(biāo)(127.0.0.1:80)
  • 打開public-server相關(guān)防火墻
sudo firewall-cmd --permanent --add-port=8081/tcp
sudo firewall-cmd --permanent --add-port=8082/tcp
sudo firewall-cmd --reload 
  • 測試訪問public-server:8081/8082端口并觀察服務(wù)端鹃觉、客戶端日志進行驗證轉(zhuǎn)發(fā)是否成功。

總結(jié)

至此睹逃,我們基于nps完成了最常見的內(nèi)網(wǎng)穿透配置盗扇,其實nps所支持的協(xié)議、操作系統(tǒng)非常多沉填,大家可以根據(jù)官方文檔進行逐步學(xué)習(xí)疗隶、驗證即可。整體系統(tǒng)的可用性非常好翼闹,我部署了一年沒有出現(xiàn)過任何問題斑鼻。

版權(quán)聲明,本文首發(fā)于 數(shù)字魔盒 https://www.dm2box.com/ 歡迎轉(zhuǎn)載猎荠。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末坚弱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子关摇,更是在濱河造成了極大的恐慌荒叶,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件输虱,死亡現(xiàn)場離奇詭異些楣,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門戈毒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人横堡,你說我怎么就攤上這事埋市。” “怎么了命贴?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵道宅,是天一觀的道長。 經(jīng)常有香客問我胸蛛,道長污茵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任葬项,我火速辦了婚禮泞当,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘民珍。我一直安慰自己襟士,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布嚷量。 她就那樣靜靜地躺著陋桂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蝶溶。 梳的紋絲不亂的頭發(fā)上嗜历,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機與錄音抖所,去河邊找鬼梨州。 笑死,一個胖子當(dāng)著我的面吹牛部蛇,可吹牛的內(nèi)容都是我干的摊唇。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼涯鲁,長吁一口氣:“原來是場噩夢啊……” “哼巷查!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起抹腿,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤岛请,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后警绩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體崇败,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了后室。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缩膝。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖岸霹,靈堂內(nèi)的尸體忽然破棺而出疾层,到底是詐尸還是另有隱情,我是刑警寧澤贡避,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布痛黎,位于F島的核電站,受9級特大地震影響刮吧,放射性物質(zhì)發(fā)生泄漏湖饱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一杀捻、第九天 我趴在偏房一處隱蔽的房頂上張望井厌。 院中可真熱鬧,春花似錦致讥、人聲如沸旗笔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝇恶。三九已至,卻和暖如春惶桐,著一層夾襖步出監(jiān)牢的瞬間撮弧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工姚糊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贿衍,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓救恨,卻偏偏與公主長得像贸辈,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子肠槽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

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