介紹個(gè)好用的內(nèi)網(wǎng)穿透工具 - nps

最早開始接觸內(nèi)網(wǎng)穿透裳涛,是在調(diào)試微信支付的時(shí)候诀拭,微信需要回調(diào)一個(gè)公網(wǎng)地址迁筛,經(jīng)過(guò)一番搜索,我選用了 natapp耕挨,優(yōu)點(diǎn)是有免費(fèi)隧道细卧,缺點(diǎn)是公網(wǎng)域名和端口是隨機(jī)分配的,偶爾調(diào)試用下還可以筒占。

后來(lái)贪庙,因?yàn)橐成涔竞图依?Windows 遠(yuǎn)程連接的端口,natapp 那種隨機(jī)域名和端口的服務(wù)赋铝,不滿足我的需求插勤。這時(shí) frp 出現(xiàn)在可選列表里,只需要一臺(tái)公網(wǎng)服務(wù)器革骨,就可以搭建,通過(guò)服務(wù)端和客戶端的配置析恋,把內(nèi)網(wǎng)服務(wù)映射到公網(wǎng)上良哲,缺點(diǎn)是每次增加或修改映射,都需要更改客戶端配置文件助隧,然后重啟服務(wù)筑凫。

現(xiàn)在疫情期間,大家都在家辦公并村,在沒有 VPN 的情況下巍实,前后端互交及其不方便,一會(huì)要映射一個(gè) A 項(xiàng)目的接口哩牍,一會(huì) B 項(xiàng)目也要映射棚潦,來(lái)回的更改客戶端配置文件及其不方便,然后無(wú)意中發(fā)現(xiàn)的今天的主角 nps

nps 的優(yōu)勢(shì)在于有一套官方提供的web管理端膝昆。

前置條件:

  • 必選:公網(wǎng) IP 服務(wù)器(阿里云丸边、騰訊云等)
  • 可選:域名

服務(wù)端安裝

服務(wù)端需要安裝在具有公網(wǎng) IP 的服務(wù)器上叠必。在 github 上可以看到 nps 的所有版本。這么多版本妹窖,可能你也分不清楚要下哪個(gè)版本纬朝,沒關(guān)系,官方維護(hù)的有docker 鏡像骄呼。

1. 拉取 nps 鏡像

# 鏡像地址:https://hub.docker.com/r/ffdfgdfg/nps
$ docker pull ffdfgdfg/nps:0.26.2


# docker 加速器
$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
$ docker pull index.docker.io/ffdfgdfg/nps:0.26.5

2. 下載服務(wù)端配置文件

在啟動(dòng)鏡像之前共苛,需要把服務(wù)端相關(guān)的配置文件下載下來(lái),用于 docker 鏡像的掛載蜓萄,我這里用了個(gè)笨方法俄讹,把整個(gè)倉(cāng)庫(kù)克隆到了電腦上。

https://github.com/ehang-io/nps

然后把 conf 文件夾的文件上傳到服務(wù)器的 /dudiao/nps/conf 目錄下绕德,最終結(jié)構(gòu)如下:

3. 啟動(dòng) nps 鏡像

服務(wù)端默認(rèn)需要占用 _80患膛,8024,8080 _端口(可通過(guò)配置文件 nps.conf 更改)耻蛇,請(qǐng)確保這些端口不被使用踪蹬。

$ docker run -d --name nps --net=host \
-v /dudiao/nps/conf:/conf ffdfgdfg/nps:0.26.2

$ docker run -d --name nps-0265 --net=host \
-v /dudiao/nps/conf:/conf index.docker.io/ffdfgdfg/nps:0.26.5

訪問(wèn) http://ip:8080 可以登錄到 nps web管理端,用戶名密碼默認(rèn)是:admin/123臣咖,至此 nps 的服務(wù)端安裝完成跃捣。


客戶端安裝

客戶端一般安裝在內(nèi)網(wǎng)環(huán)境,這里使用 Windows10 64位系統(tǒng)作為演示夺蛇。

1. 下載合適的客戶端

下載 windows_amd64_client.tar.gz疚漆,解壓。

2. 在web管理端添加客戶端

左側(cè)菜單 客戶端-新增刁赦,如下:

[圖片上傳失敗...(image-6d9f22-1587280656468)]

其中娶聘,_是否允許客戶端以配置文件模式連接 _選擇 no,即客戶端以無(wú)配置文件模式運(yùn)行甚脉,這樣做的好處在于:

各種配置只需在服務(wù)端web管理界面中完成丸升,客戶端除運(yùn)行一條命令外無(wú)需任何其他設(shè)置

3. 注冊(cè)服務(wù)(開機(jī)啟動(dòng),守護(hù)進(jìn)程)

使用 nps 自帶的命令牺氨,很方便的注冊(cè)到服務(wù)中狡耻,使用管理員身份運(yùn)行cmd

D:\windows_amd64_client> npc.exe install -server=1.2.3.4:8024 -vkey=dudiao#2020

其中 _1.2.3.4 為 nps 服務(wù)端 IP猴凹,-vkey _為第二步中填寫的 客戶端驗(yàn)證秘鑰夷狰。

4. 啟動(dòng)

D:\windows_amd64_client> 
# 啟動(dòng)
npc.exe start
# 停止
npc.exe stop

# 卸載
npc.exe uninstall

注冊(cè)到服務(wù)后,日志文件 windows 位于當(dāng)前目錄下郊霎,linux和darwin位于/var/log/npc.log沼头。


與Nginx同時(shí)使用

有時(shí)候我們還需要在云服務(wù)器上運(yùn)行 nginx 來(lái)保證靜態(tài)文件緩存等,但nginx 的 80 端口會(huì)和 nps 沖突歹篓,需要將服務(wù)端 nps 的配置文件 _nps.conf _中

http_proxy_port 設(shè)置為非 80 端口瘫证,并在 nginx 中配置代理揉阎,例如http_proxy_port 為 81 時(shí):

server {
  listen 80;
  server_name *.aml.plus;
  location / {
    proxy_set_header Host  $http_host;

    # 需要寫成內(nèi)網(wǎng)地址
    proxy_pass http://172.21.0.6:81;
  }
}

官方文檔中 proxy_pass 寫的是 127.0.0.1,但我測(cè)試的時(shí)候 nginx 報(bào)拒絕連接的錯(cuò)誤背捌,換成內(nèi)網(wǎng)地址就好使了毙籽。

本次僅進(jìn)行了功能性測(cè)試,性能方面并沒有和 frp 進(jìn)行對(duì)比毡庆,不過(guò) nps 功能強(qiáng)大的 web管理端深得我心坑赡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市么抗,隨后出現(xiàn)的幾起案子毅否,更是在濱河造成了極大的恐慌,老刑警劉巖蝇刀,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件螟加,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡吞琐,警方通過(guò)查閱死者的電腦和手機(jī)捆探,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)站粟,“玉大人黍图,你說(shuō)我怎么就攤上這事∨樱” “怎么了助被?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)切诀。 經(jīng)常有香客問(wèn)我揩环,道長(zhǎng),這世上最難降的妖魔是什么趾牧? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任检盼,我火速辦了婚禮,結(jié)果婚禮上翘单,老公的妹妹穿的比我還像新娘。我一直安慰自己蹦渣,他們只是感情好哄芜,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著柬唯,像睡著了一般认臊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锄奢,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天失晴,我揣著相機(jī)與錄音剧腻,去河邊找鬼。 笑死涂屁,一個(gè)胖子當(dāng)著我的面吹牛书在,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拆又,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼儒旬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了帖族?” 一聲冷哼從身側(cè)響起栈源,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎竖般,沒想到半個(gè)月后甚垦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡涣雕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年艰亮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胞谭。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡垃杖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丈屹,到底是詐尸還是另有隱情调俘,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布旺垒,位于F島的核電站彩库,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏先蒋。R本人自食惡果不足惜骇钦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望竞漾。 院中可真熱鬧眯搭,春花似錦、人聲如沸业岁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)笔时。三九已至棍好,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背借笙。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工扒怖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人业稼。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓盗痒,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親盼忌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子积糯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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