IoT 項(xiàng)目中常用到的開源內(nèi)網(wǎng)穿透利器:nps,幾乎支持所有協(xié)議【30k+ Star】
nps 是一款輕量級(jí)、高性能且功能強(qiáng)大的內(nèi)網(wǎng)穿透代理服務(wù)器。它支持 tcp 和 udp 流量轉(zhuǎn)發(fā),這意味著它可以兼容幾乎所有基于這兩種協(xié)議的上層應(yīng)用,例如訪問內(nèi)網(wǎng)網(wǎng)站、進(jìn)行本地支付接口調(diào)試、通過 ssh 遠(yuǎn)程連接內(nèi)網(wǎng)機(jī)器、使用遠(yuǎn)程桌面功能,以及進(jìn)行內(nèi)網(wǎng) dns 解析等操作。
除此之外,nps 還支持內(nèi)網(wǎng) http 代理、內(nèi)網(wǎng) socks5 代理以及 p2p 等多種功能,并且配備了功能強(qiáng)大的 web 管理端,使得用戶能夠更加便捷地對(duì)服務(wù)器進(jìn)行管理和監(jiān)控。
1.. 主要功能
(1) nps 的主要功能
① 多種代理模式 :nps 提供了豐富的代理模式,以滿足不同場(chǎng)景下的需求。例如,對(duì)于微信公眾號(hào)開發(fā)、小程序開發(fā)等需要域名代理的場(chǎng)景,可以使用域名代理模式;若想在外網(wǎng)通過 ssh 連接內(nèi)網(wǎng)機(jī)器或進(jìn)行云服務(wù)器到內(nèi)網(wǎng)服務(wù)器端口映射,則可采用 tcp 代理模式;在非內(nèi)網(wǎng)環(huán)境下使用內(nèi)網(wǎng) dns 或通過 udp 訪問內(nèi)網(wǎng)機(jī)器時(shí),有 udp 代理模式可供選擇;而在外網(wǎng)使用 http 代理訪問內(nèi)網(wǎng)站點(diǎn)時(shí),自然少不了 http 代理模式;此外,若想搭建一個(gè)內(nèi)網(wǎng)穿透的 ss,在外網(wǎng)如同使用內(nèi)網(wǎng) vpn 一樣訪問內(nèi)網(wǎng)資源或設(shè)備,socks5 代理模式則能輕松實(shí)現(xiàn)。
② 支持多種協(xié)議 :nps 可支持 tcp、udp 等多種協(xié)議,覆蓋了目前常見的網(wǎng)絡(luò)通信協(xié)議類型,確保了大多數(shù)基于這些協(xié)議的應(yīng)用能夠在內(nèi)外網(wǎng)之間順暢通信。無論是傳統(tǒng)的基于 tcp 的 Web 服務(wù),還是基于 udp 的實(shí)時(shí)通信應(yīng)用,都能借助 nps 實(shí)現(xiàn)內(nèi)外網(wǎng)的互聯(lián)互通。
③ 強(qiáng)大的 web 管理端 :nps 配備了一個(gè)功能強(qiáng)大的 web 管理端,用戶可以通過瀏覽器直觀地進(jìn)行各種管理操作。在這個(gè)管理界面中,用戶可以方便地添加、刪除、修改代理配置,實(shí)時(shí)查看服務(wù)器和客戶端的連接狀態(tài),以及監(jiān)控網(wǎng)絡(luò)流量等信息。這種可視化的管理方式大大降低了使用門檻,使得即使是非專業(yè)技術(shù)人員也能輕松上手,對(duì)內(nèi)網(wǎng)穿透服務(wù)進(jìn)行有效的管理和維護(hù)。
(2) nps 的應(yīng)用場(chǎng)景
① 開發(fā)與調(diào)試 :在開發(fā)過程中,尤其是涉及到內(nèi)網(wǎng)資源的開發(fā)場(chǎng)景,如微信公眾號(hào)和小程序開發(fā),當(dāng)需要將本地開發(fā)環(huán)境與外部服務(wù)進(jìn)行交互時(shí),nps 可以幫助開發(fā)者將本地服務(wù)器暴露到外網(wǎng),使得外部的微信服務(wù)器等能夠訪問到本地的開發(fā)環(huán)境,從而方便地進(jìn)行接口調(diào)試和功能測(cè)試,提高開發(fā)效率,加快項(xiàng)目進(jìn)度。
② 遠(yuǎn)程運(yùn)維 :對(duì)于需要維護(hù)內(nèi)網(wǎng)服務(wù)器的 IT 人員來說,nps 提供了極大的便利。通過 nps 的內(nèi)網(wǎng)穿透功能,他們可以在外網(wǎng)環(huán)境下輕松通過 ssh 或遠(yuǎn)程桌面協(xié)議連接到內(nèi)網(wǎng)服務(wù)器,及時(shí)進(jìn)行服務(wù)器的維護(hù)、配置更新、故障排查等工作,而無需繁瑣的內(nèi)網(wǎng)穿透設(shè)備或復(fù)雜的網(wǎng)絡(luò)設(shè)置,節(jié)省時(shí)間和人力成本。
③資源共享與訪問 :在一些特定的場(chǎng)景下,如企業(yè)內(nèi)部有特定的內(nèi)網(wǎng)資源需要與外網(wǎng)用戶共享,或者特定用戶需要從外網(wǎng)訪問內(nèi)網(wǎng)的特定服務(wù),nps 可以作為一種有效的解決方案。例如,企業(yè)員工在外出差時(shí),通過 nps 訪問內(nèi)網(wǎng)的文件服務(wù)器、數(shù)據(jù)庫服務(wù)器等,實(shí)現(xiàn)數(shù)據(jù)的及時(shí)共享和協(xié)同工作,提高工作效率。
④ 物聯(lián)網(wǎng)場(chǎng)景 :在物聯(lián)網(wǎng)領(lǐng)域,nps 也有著廣泛的應(yīng)用價(jià)值。許多物聯(lián)網(wǎng)設(shè)備部署在內(nèi)網(wǎng)環(huán)境中,如智能家居設(shè)備、工業(yè)物聯(lián)網(wǎng)傳感器等。這些設(shè)備需要與外網(wǎng)的云平臺(tái)或其他設(shè)備進(jìn)行通信,以便實(shí)現(xiàn)數(shù)據(jù)上傳、遠(yuǎn)程控制等功能。nps 可以幫助這些物聯(lián)網(wǎng)設(shè)備突破內(nèi)網(wǎng)的限制,實(shí)現(xiàn)與外網(wǎng)的穩(wěn)定連接。例如,用戶可以通過 nps 在外網(wǎng)環(huán)境下遠(yuǎn)程監(jiān)控和控制家中的智能電器,查看設(shè)備狀態(tài)、發(fā)送控制指令等,實(shí)現(xiàn)智能化的家居管理。在工業(yè)物聯(lián)網(wǎng)中,工廠內(nèi)的各類生產(chǎn)設(shè)備通常處于內(nèi)網(wǎng),通過 nps 可以將設(shè)備的運(yùn)行數(shù)據(jù)實(shí)時(shí)傳輸?shù)酵饩W(wǎng)的監(jiān)控中心,便于工程人員進(jìn)行遠(yuǎn)程監(jiān)控和數(shù)據(jù)分析,及時(shí)發(fā)現(xiàn)設(shè)備故障并進(jìn)行優(yōu)化調(diào)整,提高生產(chǎn)效率和設(shè)備利用率。
2. 開源地址
開源地址:https://github.com/ehang-io/nps
文檔地址:https://ehang-io.github.io/nps