# p2p-tunnel **Repository Path**: sfidea/p2p-tunnel ## Basic Information - **Project Name**: p2p-tunnel - **Description**: .NET6 Socket编程实现内网穿透,UDP,TCP打洞实现点对点直连,通过tcp转发,http1.1代理,socks5代理,实现访问内网web ,内网桌面,及其它TCP上层协议服务 - **Primary Language**: C# - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: http://snltty.gitee.io/p2p-tunnel - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 106 - **Created**: 2022-08-04 - **Last Updated**: 2022-08-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# p2p-tunnel ## Visual Studio 2022 LTSC 17.2
1. **/public/publish.rar包含win linux mac下依赖.NET6环境的x64和arm64**,更多环境的发布程序,请自行发布,或者进群获取 2. 在线web管理端使用说明win7不能运行.NET6的补丁 3. 自己开通的网络更容易打洞,当使用租房的房东网络时,打洞比较困难 4. 服务器 或 内网电脑,暴露服务在公网时,请做好安全防范 ## 通信线路 1. p2p、A<---->B 2. 中继、A<---->server<---->B(免费打洞服务器不开启) 3. 服务器代理、server<---->A(免费打洞服务器不开启) ## 通信模式 1. **tcp转发**1对1,不支持像ftp这样的多通道 2. **http1.1代理**多对多,支持ftp 3. **socks5代理**多对多,支持ftp ## 通信流程 1. A <--tcp转发-->B<---->内网服务 2. server <--tcp转发-->A<---->内网服务 3. A <--http1.1代理-->B<---->内网或外网服务 4. A <--http1.1代理-->server<---->内网或外网服务 5. A <--socks5代理-->B<---->内网或外网服务 6. A <--socks5代理-->server<---->内网或外网服务 ## 要点 - [x] .NET6 跨平台,小尺寸,小内存
MessagePack 序列化LiteNetLib rudpfleck websocket - [x] 内网穿透 访问内网web,内网桌面,及其它TCP上层协议服务
windows<-->windows 可使用mstsc,其它可使用 TightVNC - [x] p2p 打洞、tcp、udp - [x] tcp转发(不支持ftp) - [x] http代理(支持ftp(被动模式)) - [x] socks5代理(支持tcp,udp,不实现bind,支持ftp(被动模式)) - [x] 简单易用的客户端web管理页面 - [x] 方便使用的命令行管理命令 - [ ] 服务端web管理页面 - [x] 支持通信数据加密 - [x] 可扩展的插件式 - [x] 免费的打洞服务器 - [x] 高效的打包解包,序列化->打包->粘包解析->解包->反序列化 整个流程时间

## QQ群 有啥兴趣,有啥想了解的,尽可进群

## 项目 1. client 1. plugins 1. client.service.ui //客户端的管理工具 1. client.service.ui.api //接口定义, 这样可以在开发别的插件的时候也使用ui配置 2. client.service.ui.api.manager //服务器管理接口,与服务器端对应 3. client.service.ui.api.service //服务 4. client.service.ui.api.webrtc 5. client.service.ui.web //web界面 2. client.service.ftp 客户端服务的 文件服务插件 3. client.service.logger 日志记录的web展示 4. client.service.socks5 socks5代理客户端及服务端 5. client.service.tcpforward tcp转发,及 http代理 2. client 客户端公共内容 3. client.service **客户端** 4. client.service.command 客户端命令行管理工具 5. client.service.tary 客户端托盘工具 2. common 一些公共的功能 1. common.libs 一些公共的功能 2. common.server 服务器 3. common.socks5 socks5代理(支持tcp、udp,不实现bind) 4. common.tcpforward tcp转发公共定义 3. server 1. plugins 1. server.service.manager 服务端管理接口 2. server.service.manager.models 服务端管理接口定义 3. server.service.socks5 socks5代理服务端 4. server.service.tcpforward 服务端代理转发,实现内网穿透 5. server.service.webrtc webrtc 6. server.service.webrtc.models 2. server //打洞服务端定义 3. server.service **服务端**