NPS 輕量級(jí)內(nèi)網(wǎng)穿透服務(wù)器
NPS 是一款輕量級(jí)、高性能、功能強(qiáng)大的內(nèi)網(wǎng)穿透代理服務(wù)器。目前支持 tcp、udp 流量轉(zhuǎn)發(fā),可支持任何 tcp、udp 上層協(xié)議(訪問內(nèi)網(wǎng)網(wǎng)站、本地支付接口調(diào)試、ssh 訪問、遠(yuǎn)程桌面,內(nèi)網(wǎng)dns解析等等……),此外還支持內(nèi)網(wǎng) http 代理、內(nèi)網(wǎng) socks5 代理、p2p 等,并帶有功能強(qiáng)大的 web 管理端。
- 做微信公眾號(hào)開發(fā)、小程序開發(fā)等—-> 域名代理模式
- 想在外網(wǎng)通過 ssh 連接內(nèi)網(wǎng)的機(jī)器,做云服務(wù)器到內(nèi)網(wǎng)服務(wù)器端口的映射,—-> tcp 代理模式
- 在非內(nèi)網(wǎng)環(huán)境下使用內(nèi)網(wǎng) dns,或者需要通過 udp 訪問內(nèi)網(wǎng)機(jī)器等—-> udp 代理模式
- 在外網(wǎng)使用 HTTP 代理訪問內(nèi)網(wǎng)站點(diǎn)—-> http 代理模式
- 搭建一個(gè)內(nèi)網(wǎng)穿透 ss,在外網(wǎng)如同使用內(nèi)網(wǎng) vpn 一樣訪問內(nèi)網(wǎng)資源或者設(shè)備—-> socks5 代理模式
特點(diǎn)
- 全面的協(xié)議支持,與幾乎所有常用協(xié)議兼容,例如tcp,udp,http(s),socks5,p2p,http代理…
- 全面的平臺(tái)兼容性(Linux,Windows,MacOS,群暉等),僅支持作為系統(tǒng)服務(wù)進(jìn)行安裝。
- 全面控制,允許客戶端和服務(wù)器控制。
- Https集成,支持將后端代理和Web服務(wù)轉(zhuǎn)換為https,并支持多個(gè)證書。
- 只需在Web ui上進(jìn)行簡(jiǎn)單配置即可完成大多數(shù)要求。
- 完整的信息顯示,例如流量,系統(tǒng)信息,實(shí)時(shí)帶寬,客戶端版本等。
- 強(qiáng)大的擴(kuò)展功能,一切可用(緩存,壓縮,加密,流量限制,帶寬限制,端口重用等)
- 域名解析具有諸如自定義標(biāo)題,404頁面配置,主機(jī)修改,站點(diǎn)保護(hù),URL路由和全景解析之類的功能。
- 服務(wù)器上的多用戶和用戶注冊(cè)支持。
安裝
Github地址:https://github.com/cnlh/nps
詳細(xì)命令:https://ehang-io.github.io/nps/#/?id=nps
通常內(nèi)網(wǎng)穿透工具都有服務(wù)端和客戶端,安裝要求如下:
服務(wù)端:需要安裝在一個(gè)有公網(wǎng)IP的服務(wù)器上,系統(tǒng)為Linux/Windows/Mac均可。
客戶端:一般安裝在一個(gè)內(nèi)網(wǎng)的VPS服務(wù)器或Windows/Mac電腦上使用。
1、編譯安裝
提示:編譯安裝主要講的Linux系統(tǒng),其它系統(tǒng)(Win/Mac,也包括Linux)建議直接使用作者編譯好的文件即可。
安裝Go
語言:
#Debian/Ubuntu系統(tǒng)
apt-get -y install golang
#創(chuàng)建目錄并定義GOPATH環(huán)境變量指向該目錄
mkdir ~/workspace
echo 'export GOPATH="$HOME/workspace"' >> ~/.bashrc
source ~/.bashrc
#CentOS/RHEL系統(tǒng)
yum -y install golang
#創(chuàng)建目錄并定義GOPATH環(huán)境變量指向該目錄。
mkdir ~/workspace
echo 'export GOPATH="$HOME/workspace"' >> ~/.bashrc
source ~/.bashrc
安裝git
:
#Debian/Ubuntu系統(tǒng)
apt-get -y install git
#CentOS/RHEL系統(tǒng)
yum -y install git
安裝源碼:
go get github.com/cnlh/nps
編譯服務(wù)端和客戶端:
#進(jìn)入指定目錄
cd ~/workspace/src/github.com/cnlh/nps
#編譯服務(wù)端
go build cmd/nps/nps.go
#編譯客戶端
go build cmd/npc/npc.go
編譯好了后,就會(huì)在當(dāng)前目錄生成npc
或nps
二進(jìn)制文件了,就可以直接拿來用了。
編譯的時(shí)候可能出現(xiàn)的問題解決方法:
#只拿一種常見的錯(cuò)誤做例子,有時(shí)候可能會(huì)出現(xiàn)很多種這樣的提示
lib/kcp/crypt.go:14:2: cannot find package "golang.org/x/crypto/pbkdf2" in any of:
/usr/lib/go-1.7/src/golang.org/x/crypto/pbkdf2 (from $GOROOT)
/root/workspace/src/golang.org/x/crypto/pbkdf2 (from $GOPATH)
#意思是缺少這種包,然后記住提示的地址,比如上面的golang.org/x/crypto/pbkdf2,有時(shí)候也會(huì)提示的github地址。
然后再使用命令go get golang.org/x/crypto/pbkdf2命令安裝一下就行了。
2、直接安裝
除了自己編譯外,作者也直接提供了編譯好的文件給你使用,文件下載地址:點(diǎn)擊進(jìn)去,然后再根據(jù)自己的系統(tǒng)架構(gòu)下載對(duì)應(yīng)的最新版服務(wù)端和客戶端。
如果對(duì)于Linux
服務(wù)器還是不知道怎么選擇的,這里拿Vultr
、搬瓦工大多數(shù)VPS
為例。先使用命令getconf LONG_BIT
獲取系統(tǒng)版本,32
位就選386
,64
就選amd64
,具體還是以實(shí)際情況為準(zhǔn)。
服務(wù)端使用
這里博主使用的是Vultr Linux x64
服務(wù)器,直接使用命令:
#記得復(fù)制前先將下面鏈接替換成當(dāng)前最新版地址
cd ~
#下載并解壓服務(wù)端
wget https://github.com/cnlh/nps/releases/download/v0.0.14/linux_amd64_server.tar.gz && tar zxvf linux_amd64_server.tar.gz
#編輯配置文件
cd nps
nano conf/nps.conf
配置文件參數(shù)如下:
#web管理端口
httpport
#web界面管理密碼
password
#服務(wù)端客戶端通信端口
bridePort
#ssl certFile絕對(duì)路徑
pemPath
#ssl keyFile絕對(duì)路徑
keyPath
#域名代理https代理監(jiān)聽端口
httpsProxyPort
#域名代理http代理監(jiān)聽端口
httpProxyPort
#web api免驗(yàn)證IP地址
authip
#客戶端與服務(wù)端連接方式kcp或tcp
bridgeType
然后啟動(dòng)服務(wù)端:
./nps install
./nps start
#重啟/停止服務(wù)端
./nps stop|restart
然后打開地址http://ip:8080
訪問管理界面,具體端口以自己修改的為準(zhǔn),再使用密碼登錄進(jìn)去,默認(rèn)為123
。
#如果打不開Web界面,就需要開啟防火墻,一般CentOS系統(tǒng)出現(xiàn)情況最多
#Centos 6系統(tǒng)
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart
#CentOS 7系統(tǒng)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
對(duì)于有些服務(wù)器,比如阿里云,谷歌云等,還需要在服務(wù)器管理面板上開放Web
端口才行。
客戶端使用
1、Linux系統(tǒng)
#比如下載的客戶端文件在根目錄,先進(jìn)入根目錄
cd ~
#啟動(dòng)客戶端,比如服務(wù)端公網(wǎng)IP為1.1.1.1,服務(wù)端配置文件中tcpport為8284
./npc -server=1.1.1.1:8284 -vkey=客戶端的密鑰
2、Windows系統(tǒng)
首先按住Win+R
,輸入cmd
進(jìn)入命令窗口,然后使用命令:
#比如下載的客戶端文件在D盤,先進(jìn)入到D盤
cd /d d:
#啟動(dòng)客戶端,比如服務(wù)端公網(wǎng)IP為1.1.1.1,服務(wù)端配置文件中tcpport為8284
npc.exe -server=1.1.1.1:8284 -vkey=客戶端的密鑰
至于Mac
系統(tǒng)啟動(dòng)參考上面就行。
使用場(chǎng)景
關(guān)于使用場(chǎng)景,Github
文檔寫的很清楚了,這里大概的說下。
1、tcp隧道模式
適用:想在外網(wǎng)通過ssh連接內(nèi)網(wǎng)的機(jī)器,做云服務(wù)器到內(nèi)網(wǎng)服務(wù)器端口的映射,或者做微信公眾號(hào)開發(fā)、小程序開發(fā)等。
詳細(xì)教程→點(diǎn)擊查看。
2、udp隧道模式
適用:在非內(nèi)網(wǎng)環(huán)境下使用內(nèi)網(wǎng)dns,或者需要通過udp訪問內(nèi)網(wǎng)機(jī)器等。
詳細(xì)教程→點(diǎn)擊查看。
3、http代理模式
適用:在外網(wǎng)使用HTTP代理訪問內(nèi)網(wǎng)站點(diǎn)。
詳細(xì)教程→點(diǎn)擊查看。
4、socks5代理模式
適用:搭建一個(gè)內(nèi)網(wǎng)穿透55,在外網(wǎng)如同使用內(nèi)網(wǎng)v皮n一樣訪問內(nèi)網(wǎng)資源或者設(shè)備。
詳細(xì)教程→點(diǎn)擊查看。
相關(guān)功能
1、數(shù)據(jù)壓縮支持
由于是內(nèi)網(wǎng)穿透,內(nèi)網(wǎng)客戶端與服務(wù)端之間的隧道存在大量的數(shù)據(jù)交換,為節(jié)省流量,加快傳輸速度,由此本程序支持SNNAPY
形式的壓縮。
- 所有模式均支持?jǐn)?shù)據(jù)壓縮,可以與加密同時(shí)使用
- 開啟此功能會(huì)增加
cpu
和內(nèi)存消耗 - 在
server
端加上參數(shù)-compress=snappy
(或在web
管理中設(shè)置)
2、加密傳輸
如果公司內(nèi)網(wǎng)防火墻對(duì)外網(wǎng)訪問進(jìn)行了流量識(shí)別與屏蔽,例如禁止了ssh
協(xié)議等,通過設(shè)置配置文件,將服務(wù)端與客戶端之間的通信內(nèi)容加密傳輸,將會(huì)有效防止流量被攔截。
- 開啟此功能會(huì)增加
cpu
和內(nèi)存消耗 - 在
server
端加上參數(shù)-crypt=true
(或在web管理中設(shè)置)
3、站點(diǎn)保護(hù)
域名代理模式所有客戶端共用一個(gè)http
服務(wù)端口,在知道域名后任何人都可訪問,一些開發(fā)或者測(cè)試環(huán)境需要保密,所以可以設(shè)置用戶名和密碼,nps
將通過Http Basic Auth
來保護(hù),訪問時(shí)需要輸入正確的用戶名和密碼。
web
管理中可配置
4、host修改
由于內(nèi)網(wǎng)站點(diǎn)需要的host
可能與公網(wǎng)域名不一致,域名代理支持host
修改功能,即修改request
的header
中的host
字段。
- 在
web
管理中設(shè)置
5、自定義header
支持對(duì)header
進(jìn)行新增或者修改,以配合服務(wù)的需要。
6、404頁面配置
支持域名解析模式的自定義404
頁面,修改/web/static/page/error.html
中內(nèi)容即可,暫不支持靜態(tài)文件等內(nèi)容。
7、流量限制
支持客戶端級(jí)流量限制,當(dāng)該客戶端入口流量與出口流量達(dá)到設(shè)定的總量后會(huì)拒絕服務(wù),域名代理會(huì)返回404
頁面,其他會(huì)拒絕連接。
8、帶寬限制
支持客戶端級(jí)帶寬限制,帶寬計(jì)算方式為入口和出口總和,權(quán)重均衡。
9、負(fù)載均衡
本代理支持域名解析模式的負(fù)載均衡,在web
域名添加或者編輯中內(nèi)網(wǎng)目標(biāo)分行填寫多個(gè)目標(biāo)即可實(shí)現(xiàn)輪訓(xùn)級(jí)別的負(fù)載均衡。
10、守護(hù)進(jìn)程
本代理支持守護(hù)進(jìn)程,使用示例如下,服務(wù)端客戶端所有模式通用,支持linux
、darwin
、windows
。
./(nps|npc) start|stop|restart|status 若有其他參數(shù)可加其他參數(shù)
(nps|npc).exe start|stop|restart|status 若有其他參數(shù)可加其他參數(shù)
11、KCP協(xié)議支持KCP
是一個(gè)快速可靠協(xié)議,能以比TCP
浪費(fèi)10%-20%
的帶寬的代價(jià),換取平均延遲降低30%-40%
,在弱網(wǎng)環(huán)境下對(duì)性能能有一定的提升??稍?code>app.conf中修改bridgeType
為kcp
。
- 當(dāng)服務(wù)端為
kcp
時(shí),客戶端連接時(shí)也需要加上參數(shù)-type=kcp
。
該工具很強(qiáng)大,更多的使用可以自行研究,如果有人知道Frp
管理面板的話,可以給博主提供下。
【標(biāo)準(zhǔn)版】400元/年/5用戶/無限容量
【外貿(mào)版】500元/年/5用戶/無限容量
其它服務(wù):網(wǎng)站建設(shè)、企業(yè)郵箱、數(shù)字證書ssl、400電話、
聯(lián)系方式:電話:13714666846 微信同號(hào)
聲明:本站所有作品(圖文、音視頻)均由用戶自行上傳分享,或互聯(lián)網(wǎng)相關(guān)知識(shí)整合,僅供網(wǎng)友學(xué)習(xí)交流,若您的權(quán)利被侵害,請(qǐng)聯(lián)系 管理員 刪除。
本文鏈接:http://www.goalq.com.cn/article_32857.html