- 这是一个内网穿透项目,包括p2p打洞穿透,服务器代理穿透,还包含了一些有趣的功能
- 之前用了一些穿透工具,存在一些问题
- 有go的,rust的,c++的,都看不太懂,不好加自己需要的功能
- .NET平台的极少,且,或仅支持服务器代理穿透,或内存占用量非常大(100MB+),都不是很符合自己的期望
- 基于这些有的没的,就决定了自己实现,做一个自己喜欢的内网穿透工具,也是为了学习网络协议相关知识
- 除了rudp(LiteNetLib),其它代码都是手写,所以代码量,内存占用率,都比较小,速度也比较快。
- 【内网穿透】
- TCP、UDP打洞,(LiteNetLib rudp)
- A客户端<-->B客户端
- 服务器中继
- A客户端<-->服务器<-->B客户端
- 中继不参与打包解包,仅网络消耗
- 节点中继
- A客户端<-->某客户端(中间任意数量)<-->B客户端
- 中继不参与打包解包,仅网络消耗
- 服务器代理
- 服务器<-->A客户端
- TCP、UDP打洞,(LiteNetLib rudp)
- 【.NET7】 跨平台,高性能,小尺寸,小内存
- 【UI界面】 简单易用的web管理页面
- 【高效】 高效的打包解包,作死的全手写序列化,通信速度极佳,以下结果基于 CPU:i5 8400,memory:3600
- 【加密】 支持通信数据加密(预配置密钥或自动交换密钥)
- 【插件式】 可扩展的插件式
- 【自建服务器】 自建服务器则可开启 服务器代理穿透,服务器中继
- 免费的打洞服务器
- android app
- 【账号管理】 简单的权限配置
- 到期时间
- 登入数限制(同一账号同时登入数量)
- 权限分配
- 流量限制
- 【tcp转发】 转发tcp协议
- tcp <----> A客户端 <--打洞/服务器中继/节点中继--> B客户端<----> 内网tcp
- 【udp转发】 转发udp协议
- udp <----> A客户端 <--打洞/服务器中继/节点中继--> B客户端<----> 内网udp
- 【http代理】 以节点或者服务端作为代理目标
- http代理 <----> A客户端 <--打洞/服务器中继/节点中继--> B客户端 <----> 外网
- http代理 <----> A客户端 <----> 服务器 <----> 外网
- 【socks5代理】 以节点或者服务端作为代理目标
- socks5 <----> A客户端 <--打洞/服务器中继/节点中继--> B客户端 <----> 外网
- socks5 <----> A客户端 <----> 服务器 <----> 外网
- 【虚拟网卡组网】
- 虚拟ip(tcp/udp) <----> A客户端 <--打洞/服务器中继/节点中继--> B客户端<----> 内网(tcp/udp)
- 支持tcp、udp(支持组播),方便联机游戏
- 支持windows、linux、osx
- 如果无法运行虚拟网卡软件,你可能得自行下载对应系统及cpu版本的软件进行同名替换 tun2socks下载
- client.service.tray.exe //客户端
- server.service.tray.exe //服务端
- 服务端 linux docker托管
- 客户端 linux supervisor托管
- 服务端docker镜像 snltty/p2p-tunnel-server
- 客户端端docker镜像 snltty/p2p-tunnel-client
请作者喝一杯咖啡,使其更有精力更新代码