當前位置: 妍妍網 > 碼農

免費開源輕量級的P2P內網穿透工具之openp2p(無需公網IP)

2024-04-24碼農

簡介

官網: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

    1. 免費

    完全免費,滿足大部份使用者的核心白票需求。不像其它類似的產品,OpenP2P不需要有公網IP的伺服器,不需要花錢買服務。了解它原理即可理解為什麽能做到免費。

    1. 共享

    你的裝置會形成一個私有P2P網路,它們之間共享頻寬,提供網路數據轉發服務。
    當你的私有P2P網路下沒有可以提供轉發服務的節點時,會嘗試在公共P2P網路尋找轉發節點。
    預設會開啟共享限速10mbps,只有你使用者下提供了共享節點才能使用別人的共享節點。這非常公平,也是這個計畫的初衷。
    我們建議你在頻寬足夠的地方(比如辦公室,家裏的百兆光纖)加入共享網路。
    如果你不想共享任何節點,或設定共享頻寬。

    1. 安全

    程式碼開源,P2P隧道使用TLS1.3+AES雙重加密,共享節點臨時授權使用TOTP一次性密碼

    1. 輕量

    檔大小2MB+,執行記憶體2MB+;全部在套用層實作,沒有虛擬網卡,沒有內核程式

    1. 跨平台

    因為輕量,所以很容易支持各個平台。支持主流的作業系統:Windows,Linux,MacOS;和主流的cpu架構:386、amd64、arm、arm64、mipsle、mipsle64、mips、mips64

    1. 高效

    P2P直連可以讓你的裝置跑滿頻寬。不論你的裝置在任何網路環境,無論NAT1-4(Cone或Symmetric),UDP或TCP打洞,UPNP,IPv6都支持。依靠Quic協定優秀的擁塞演算法,能在糟糕的網路環境獲得高頻寬低延時。

    1. 二次開發

    基於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