簡介
官網:https://openp2p.cn/
GitHub:https://github.com/openp2p-cn/openp2p
中文說明:https://github.com/openp2p-cn/openp2p/blob/master/README-ZH.md
OpenP2P是什麽
它是一個開源、免費、輕量級的P2P共享網路。你的裝置將組成一個私有P2P網路,裏面的裝置可以直接存取其它成員,或者透過其它成員轉發數據間接存取。如果私有網路無法完成通訊,將會到公有P2P網路尋找共享節點協助通訊。
相比BT網路用來共享檔,OpenP2P網路用來共享頻寬。
我們的目標是:充分利用頻寬,利用共享節點轉發數據,建設一個遠端連線的通用基礎設施。
典型套用場景
特別適合大流量的內網存取
遠端辦公: Windows MSTSC、VNC等遠端桌面,SSH,內網各種ERP系統
遠端存取內網ERP系統
遠端存取NAS: 管理大量視訊、圖片
遠端監控網路攝影機
遠端刷機
遠端數據備份
為什麽選擇OpenP2P
免費
完全免費,滿足大部份使用者的核心白票需求。不像其它類似的產品,OpenP2P不需要有公網IP的伺服器,不需要花錢買服務。了解它原理即可理解為什麽能做到免費。
共享
你的裝置會形成一個私有P2P網路,它們之間共享頻寬,提供網路數據轉發服務。
當你的私有P2P網路下沒有可以提供轉發服務的節點時,會嘗試在公共P2P網路尋找轉發節點。
預設會開啟共享限速10mbps,只有你使用者下提供了共享節點才能使用別人的共享節點。這非常公平,也是這個計畫的初衷。
我們建議你在頻寬足夠的地方(比如辦公室,家裏的百兆光纖)加入共享網路。
如果你不想共享任何節點,或設定共享頻寬。
安全
程式碼開源,P2P隧道使用TLS1.3+AES雙重加密,共享節點臨時授權使用TOTP一次性密碼
輕量
檔大小2MB+,執行記憶體2MB+;全部在套用層實作,沒有虛擬網卡,沒有內核程式
跨平台
因為輕量,所以很容易支持各個平台。支持主流的作業系統:Windows,Linux,MacOS;和主流的cpu架構:386、amd64、arm、arm64、mipsle、mipsle64、mips、mips64
高效
P2P直連可以讓你的裝置跑滿頻寬。不論你的裝置在任何網路環境,無論NAT1-4(Cone或Symmetric),UDP或TCP打洞,UPNP,IPv6都支持。依靠Quic協定優秀的擁塞演算法,能在糟糕的網路環境獲得高頻寬低延時。
二次開發
基於OpenP2P只需數行程式碼,就能讓原來只能區域網路通訊的程式,變成任何內網都能通訊
快速入門
僅需簡單4步就能用起來。
下面是一個遠端辦公例子:在家裏連入辦公室Windows電腦。
(另外一個快速入門視訊 https://www.bilibili.com/video/BV1Et4y1P7bF/)
1.註冊
前往https://console.openp2p.cn 註冊新使用者,暫無需任何認證
下載安裝
註冊之後,會提供下載地址。
詳細使用說明
https://github.com/openp2p-cn/openp2p/blob/master/USAGE-ZH.md
大部份情況透過https://console.openp2p.cn 操作即可。有些情況需要手動執行
⚠️ 本文所有命令, Windows環境使用"openp2p.exe", Linux環境使用"./openp2p"
1./openp2p install -node OFFICEPC1 -token TOKEN
2或
3./openp2p -d -node OFFICEPC1 -token TOKEN
4# 註意Windows系統把「./openp2p」 換成「openp2p.exe」
install: 安裝模式【推薦】,會安裝成系統服務,這樣它就能隨系統自動啟動
-d: daemon模式。發現worker行程意外結束就會自動啟動新的worker行程
-node: 獨一無二的節點名字,唯一標識
-token: 在
-sharebandwidth: 作為共享節點時提供頻寬,預設10mbps. 如果是光纖大頻寬,設定越大效果越好. 0表示不共享,該節點只在私有的P2P網路使用。不加入共享的P2P網路,這樣也意味著無法使用別人的共享節點
-loglevel: 需要檢視更多偵錯日誌,設定0;預設是1
連線
1./openp2p -d -node HOMEPC123 -token TOKEN -appname OfficeWindowsRemote -peernode OFFICEPC1 -dstip 127.0.0.1 -dstport 3389 -srcport 23389
2使用配置檔,建立多個P2PApp
3./openp2p -d
-appname: 這個P2P套用名字
-peernode: 目標節點名字
-dstip: 目標服務地址,預設本機127.0.0.1
-dstport: 目標伺服端口,常見的如windows遠端桌面3389,Linux ssh 22
-protocol: 目標服務協定 tcp、udp
配置檔
一般保存在當前目錄,安裝模式下會保存到
C:\Program Files\OpenP2P\config.json
或
/usr/local/openp2p/config.json
希望修改參數,或者配置多個P2PApp可手動修改配置檔
配置例項
1{
2"network": {
3"Node": "hhd1207-222",
4"Token": "TOKEN",
5"ShareBandwidth": 0,
6"ServerHost": "api.openp2p.cn",
7"ServerPort": 27183,
8"UDPPort1": 27182,
9"UDPPort2": 27183
10 },
11"apps": [
12 {
13"AppName": "OfficeWindowsPC",
14"Protocol": "tcp",
15"SrcPort": 23389,
16"PeerNode": "OFFICEPC1",
17"DstPort": 3389,
18"DstHost": "localhost",
19 },
20 {
21"AppName": "OfficeServerSSH",
22"Protocol": "tcp",
23"SrcPort": 22,
24"PeerNode": "OFFICEPC1",
25"DstPort": 22,
26"DstHost": "192.168.1.5",
27 }
28 ]
29}
升級客戶端
1# update local client
2./openp2p update
3# update remote client
4curl --insecure 'https://api.openp2p.cn:27183/api/v1/device/YOUR-NODE-NAME/update?user=&password='
Windows系統需要設定防火墻放行本程式,程式會自動設定,如果設定失敗會影響連線功能。Linux系統(Ubuntu和CentOS7)的防火墻預設配置均不會有影響,如果不行可嘗試關閉防火墻
1systemctl stop firewalld.service
2systemctl start firewalld.service
3firewall-cmd --state
解除安裝
1./openp2p uninstall
2# 已安裝時
3# windows
4C:\Program Files\OpenP2P\openp2p.exe uninstall
5# linux,macos
6sudo /usr/local/openp2p/openp2p uninstall