User: English|中文
Website: openp2p.cn

What is OpenP2P
It is an open source, free, and lightweight P2P sharing network. Your devices will form a private P2P network, in which devices can directly access other members, or indirectly access through other members forwarding data. If the private network cannot complete the communication, it will go to the public P2P network to find a shared node to assist in the communication. Compared with the BT network used to share files, the OpenP2P network is used to share bandwidth. Our goal is to make full use of bandwidth, use shared nodes to relay data, and build a common infrastructure for remote connections.

Why OpenP2P
1. Free
Totaly free, fullfills most of users(especially free-rider). Unlike other similar products, OpenP2p doesn't need a server with public IP, and doesn't need to pay for services.By understanding its principle, you can understand why it can be done for free.

2. Share
Your devices will form a private P2P network, share bandwidth between them, and provide network data forwarding services. When there is no node that can provide forwarding services in your private P2P network, you will try to find forwarding nodes in the public P2P network. 10mbps is its default setting of share speed limit. Only when you have shared their nodes, you are allowed to use others' shared nodes. This is very fair, and it is also the original intention of this project. We recommend that you join a shared network in a place with sufficient bandwidth (such as an office or home with 100M optical fiber). If you are not willing to contribute any node to the OpenP2P share network, please refer to the usage for your own setting.

3. Safe
The code is open source, the P2P tunnel uses TLS1.3+AES double encryption, and the shared node temporarily authorizes the use of the TOTP one-time password

details

4. Lightweight
2MB+ filesize, 2MB+ memory. It could only runs at application layer, or uses wintun driver for SDWAN.

5. Cross-platform
Benefit from lightweight, it easily supports most of major OS, like Windows, Linux, MacOS, also most of CPU architecture, like 386、amd64、arm、arm64、mipsle、mipsle64、mips、mips64、s390x、ppc64le.

6. Efficient
P2P direct connection lets your devices make good use of bandwidth. Your device can be connected in any network environments, even supports NAT1-4 (Cone or Symmetric),UDP or TCP punching,UPNP,IPv6. Relying on the excellent congestion algorithm of the Quic protocol, high bandwidth and low latency can be obtained in a bad network environment.

7. Integration
Your applicaiton can call OpenP2P with a few code to make any internal networks communicate with each other.

Get Started
Just 4 simple steps to use. Here's an example of remote work: connecting to an office Windows computer at home. (Another quick started vedio https://www.bilibili.com/video/BV1Et4y1P7bF/)

1.Register
Go to https://console.openp2p.cn register a new user

image

2.Install
Download on local and remote computers and double-click to run, one-click installation

image

By default, Windows will block programs that have not been signed by the Microsoft's certificate, and you can select "Run anyway".

image

image

3.New P2PApp
image

image

image

4.Use P2PApp
You can see the P2P application you just created on the "MyHomePC" device, just connect to the "local listening port" shown in the figure below.

image

On MyHomePC, press Win+R and enter MSTSC to open the remote desktop, input 127.0.0.1:23389 /admin

image

image

Usage
Here describes how to run manually

Scenarios
Especially suitable for large traffic intranet access.

Remote work: Windows MSTSC, VNC and other remote desktops, SSH, various ERP systems in the intranet
Remote access ERP systems in the intranet
Remote access NAS: Manage a large number of videos and pictures
Remote access camera
Remote flashing phone
Remotely data backup
Overview Design
Prototype
image

Client architecture
image

P2PApp
P2PAPP is the most import concept in this project, one P2PApp is able to map the remote service(mstsc/ssh) to the local listening. The main job of re-development or restful API we provide is to manage P2PApp.

image

Safety
The nodes which have joined the OpenP2P share network can vist each other by authentications. Shared nodes will only relay data, and others cannot access any resources in the intranet.

1. TLS1.3+AES
The communication data between the two nodes uses the industry's most secure TLS1.3 channel. The communication content will also use AES encryption, double security, the key is exchanged through the server. Effectively prevent man-in-the-middle attacks.

2. Will the shared node capture my data?
That's right, the relay node is naturally an man-in-middle, so AES encryption is added to ensure the security of the communication content. The relay node cannot obtain the plaintext.

3. How does the shared relay node verify the authority?
The server side has a scheduling model, which calculate bandwith, ping value,stability and ser


这是什么项目，如果两台手机都装了，第三三台可以访问被控制端吗
Assistant: OpenP2P 是一个开源、免费的轻量级 P2P 共享网络，主要用于共享带宽。设备之间构成一个私有 P2P 网络，设备可以直接或通过其他成员转发数据来进行通信。如果私有网络无法完成通信，它将转向公共 P2P 网络寻找共享节点来协助通信。

至于你提到的场景，如果两台手机都安装了 OpenP2P 且配置好，一个第三设备（如另一台手机或电脑）可以通过这个网络访问和控制这些设备，前提是这些设备在配置中允许这样的访问。这种功能通常依赖于在设备上配置的 P2PApp，允许将远程服务映射到本地端口，从而实现远程访问。需要注意的是，所有的通信都是通过加密来保证安全性的。
User: 能说的更明白一些吗？为啥要共享带宽
Assistant: OpenP2P 的设计目的是为了优化网络资源的使用，尤其是带宽。通过共享带宽，OpenP2P 提供了一种新的网络连接方式，使设备可以在没有公共 IP 地址或专用服务器的情况下进行通信。共享带宽有几个核心原因：

1. **资源高效利用**：在传统的网络设置中，个人用户的带宽经常处于闲置状态。通过共享，这些闲置的带宽可以被有效利用，帮助其他设备进行数据转发和通信。

2. **成本节约**：使用共享带宽意味着不必依赖昂贵的服务器和公共 IP 资源，这降低了使用成本。OpenP2P 旨在免费使用，这对于那些不想额外支付网络服务费用的用户是非常有吸引力的。

3. **提高网络连接质量**：有时候，私有网络无法直接建立连接（例如防火墙阻隔或网络配置复杂），通过公共 P2P 网络的共享节点，可以提升通信的成功率和效率，实现更稳定的远程连接。

4. **去中心化的概念**：P2P网络的本质是去中心化的，减少对单一点的依赖，提高整个网络的弹性和鲁棒性。每个节点既是客户端也是服务器，能够在需要时帮助转发其他节点的数据。

通过以上这些方式，OpenP2P 不仅提供了一种高效的网络资源利用方案，还支持广泛的网络配置和环境，使用户可以在各种条件下保持良好的连接体验。
User: 意思原理就是利用别人共享的带宽吗
Assistant: