🚀Ubuntuの奇妙冒险 | OpenP2P 实现内网穿透 点对端传输

193 阅读4分钟

介绍

OpenP2P 是一款开源、免费且轻量级的点对点(P2P)共享网络工具,它能让分布在不同网络的设备组成一个虚拟的私有网络,实现高效的内网穿透和异地组网。起初只是想使用一些免费、非常规的方式远程访问飞牛 NAS 设备

🔄 核心原理与模式

OpenP2P 的核心是共享网络理念。你的设备会形成一个私有 P2P 网络,成员间可以直接访问或通过其他成员转发数据。如果私有网络内无法通信,它会尝试在公共 P2P 网络中寻找共享节点协助通信。这类似于BT网络共享文件,但OpenP2P共享的是带宽

默认情况下,作为共享节点时提供的带宽限速为 10 Mbps,你可以在配置中调整此数值或选择不共享。

✨ 主要特性与优势

  • 完全免费与开源:核心功能完全免费,无需公网IP服务器,代码开源可供审计。
  • 安全性高:P2P隧道采用 TLS1.3 + AES 双重加密,共享节点临时授权使用 TOTP 一次性密码,有效防止中间人攻击。
  • 轻量且跨平台:客户端文件小(约2-10MB),内存占用低(约2MB+),支持 Windows、Linux、macOS、Android 等主流操作系统和多种CPU架构。
  • 高效连接:支持各种NAT类型(NAT1-NAT4)、UDP/TCP打洞、UPNP、IPv6等,旨在实现P2P直连,理论上能跑满带宽。基于Quic协议,在较差网络环境下也能保持较低延迟。

💻 典型应用场景

OpenP2P 特别适合需要较大流量的内网访问场景:

  • 远程办公:访问办公室电脑的远程桌面(Windows MSTSC、VNC)、SSH连接、内网ERP系统等。
  • 远程访问 NAS:管理家庭NAS中的文件、视频、图片,或访问Emby等媒体服务。
  • 其他场景:远程监控摄像头、远程刷机、数据备份等。

⚖️ 注意事项

  • 连接稳定性:其效果依赖于网络环境和可用共享节点,在某些复杂网络下可能不如拥有优质中转服务器的商业服务稳定。

  • 共享精神:为了网络的健康发展,建议在带宽充足的设备上开启共享。

注册

安装

以 Ubuntu 和 Android 系统为例;支持 Windows、Mac、Linux、Android 系统

  • Ubuntu:运行语句,飞牛 OS 应该同理;根据 Token 安装的,就不需要登录账号,控制台会自动录入 Linux 设备

     sudo curl -k -o install.sh "https://console.openp2p.cn/download/v1/3.24.35/install.sh"
     sudo bash ./install.sh --token 358……(你的 Token) --ver 3.24.35 --domain console.openp2p.cn
     sudo systemctl status openp2p #查看服务状态
     sudo systemctl start openp2p #开启
     sudo systemctl stop openp2p #停止
    

    image.png

  • Android:在官方控制台下载安装,要求的 VPN 开放权限也要给;填入 Token 即可登录
    image.png

  • 控制台显示:安装后在虚拟网络中就可以添加设备了,添加后会显示在设备页面中,可以编辑设备修改共享带宽限制
    image.png image.png

连接

现在以在 Android 手机上访问 Ubuntu 上运行的服务为例:测试使用 crawl4ai 的 Gradio 服务已经运行暴露在 Ubuntu 主机的 8899 端口上了;接下来在控制台进行操作链接

  • 进入 Android 手机的端口转发:

  • 点击右下角“+”号按钮,新建端口转发:

  • 修改本地地址为 2244(例子,建议10000以上),修改目标地址为 8899:

  • 保存后建立链接:

  • 在手机端浏览器中访问:http://127.0.0.1:2244

连接飞牛设备

  • 安装 FntermX 终端应用:

  • 终端中安装 OpenP2P:

     sudo curl -k -o install.sh "https://console.openp2p.cn/download/v1/3.24.35/install.sh"
     sudo -S bash ./install.sh --token 358……(你的 Token) --ver 3.24.35 --domain console.openp2p.cn
     sudo systemctl status openp2p #查看服务状态
    
  • 创建连接:(移动端应该是无法访问的)

    • 启动两台机器的 OpenP2P 服务:注意内网 IP,表明不在同一个局域网中(Ubuntu 设备使用的是个人热点)

      image.png

    • 在请求访问的设备中创建端口转发:注意修改 NAS 的开放端口,可以先检测下是否可以连通;保存后即可

    • 在请求访问的设备浏览器中访问配置的转发本地端口:注意地址栏中地址

    • P2P 直连稳定后,下载文件速度维持在 10MB/s 左右,受限于宽带的上行带宽,基本上跑满了;当前路由器有 30 多台设备连接,数量少些,说不定会快上不少

注意

  • 连接稳定性取决于两个连接设备的网络环境稳定性
  • 根据路由器防火墙,修改打洞协议(TCP/UDP),可能会建立 P2P 直连,提升速度,连接稳定后传输速度在 10MB/s 左右