Nagent
Nagent是TCP內網穿透實現(xiàn),名稱來源于Nat與Agent的組合。類似frp項目,可以在局域網與互聯(lián)網提供橋梁。
前提是你要有一臺流量服務器并且有一個公網IP。如果沒有,也可以找服務商。
暫不能向frp那樣為HTTP服務,但可以實現(xiàn)簡單的分發(fā)————你只需要在兩臺內網HTTP服務器上運行Nagent客戶端即可。
項目位置:https://github.com/FettLuo/nagent
進度
可以使用
未向特殊協(xié)議優(yōu)化,例如http/s的轉發(fā)
雖然協(xié)議有涉及賬號名與密碼,但未實現(xiàn)
未來希望你或我,向項目添加賬號管理支持,以webservice的形式支持
名詞解釋
客戶端:運行在內網的Nagent客戶端。
服務端:運行在公網服務器上的Nagent服務端。
用戶:互聯(lián)網上的實際用戶。
過程
服務器監(jiān)聽在5670端口(默認)。
客戶端配置好自己的服務端口,也可以指定內網其他計算機。假設本機80端口。
客戶端登錄到服務器,通知服務器我需要監(jiān)聽的外網端口,比如90。
一切正常的話(防火墻沒問題,端口沒被占用等),服務器上90端口的連接即會被導向到內網的80端口服務上。
原理
客戶端與服務器保持著一定數(shù)量的連接,每個連接都需要登錄成功。
用戶連接公網服務器的端口后會從客戶端的列表中彈出一個用于數(shù)據轉發(fā)。
當客戶端第一次收到數(shù)據時,建立與本地服務的連接,并發(fā)送/轉發(fā)數(shù)據。
部署
需要NodeJS
運行為服務端
windows/linux:
node nagent.js -s
linux:
./nagent.js -s
運行為客戶端
windows/linux:
node nagent.js -p 90 -P 80
linux:
./nagent.js -p 90 -P 80
配置
保存下面內容到nagent.js所在的目錄,文件名為nagent.config,方括號內替換為你的參數(shù)。
local_port=[你的本地服務端口]
server_port=5670// 服務端端口號
server_host='[服務端的主機地址,IP或域名均可]'
remote_port=[你需要服務端為你開放的公網端口]
keep_conn_count=10// 同時保持的最大連接數(shù)量