开源,肝爆了! 基于 WebRTC 端到端的桌面共享/文本传输/文字传输已经都达到了可用状态!撒花~
没想到拖了这么久,当初顶的小目标终于实现了!
文件传输/桌面共享 已经都支持了!!!! 撒花~ 撒花~ 撒花~
项目起因是因为要经常传一些文件到 win 服务,下载网盘啥的好麻烦,又要登录又要先下载客户端,也想了解下 webrtc 技术。摸着需求就开始过河了!!
终于这个上个周末把 UI 一些状态 桌面共享 文件传输 ack 都加上了。
项目后端 Go 前端是 react nextjs GO server 只作为信令转发,p2p 建立后传数据文本/共享桌面/文件都不会经过服务器,安全!隐私!
开源地址 github.com/MatrixSeven/file-transfer-go
体验地址 transfer.52python.cn/
备注:
本项目和 server 不提供降级服务,p2p 建立失败,则无法传输任何数据。
p2p 的建立成功与否 取决于你的 nat 网络模型。
下面是 AI 提供的 nat 场景 ,大家可以参考:
NAT 类型主要分为以下四种,根据其对外部连接的限制程度不同,影响打洞的成功率:全锥形 NAT ( Full Cone NAT ) 特点:内部主机的 IP 和端口映射到固定的公网 IP 和端口,任何外部主机都可以通过该公网地址访问内部主机。
打洞友好程度:最高,易于穿透。
地址限制锥形 NAT ( Restricted Cone NAT ) 特点:只有内部主机主动向外部主机发送过数据包的外部 IP ,才能通过 NAT 的公网 IP 和端口访问内部主机。
打洞友好程度:较高,但需要先建立通信。
端口限制锥形 NAT ( Port Restricted Cone NAT ) 特点:进一步限制,只有内部主机主动向外部主机的特定 IP 和端口发送过数据包,外部主机才能从相同的 IP 和端口访问内部主机。
打洞友好程度:中等,需要精确的端口匹配。
对称 NAT ( Symmetric NAT ) 特点:每次与不同外部主机通信时,NAT 分配的公网端口都不同,映射关系严格依赖于目标 IP 和端口。
打洞友好程度:最低,穿透难度最大。
佬们,服务器上不会有任何设备信息。 所以没法通过设备默认取匹配建立链接,只能通过取件码。如果有特殊需求项目是 MIT ,大家 fork 走随便改,随便用。
这个项目的初心就是 即开即用,传输文件/共享桌面/同步文字 。
因为自己高频用这种东西,了解相关技术后也想自己造一造,搞一个 UI/功能符合自己操作习惯的工具。原则就是直观,直接,不拖泥带水,开门即是主题,传输文件 or 文字 or 共享桌面。
最后 尽管现在达到了能用的状态,但是依旧还有很多小问题,大家可以提 issue 来反馈 或者 发表建议,也可以 PR 合并一些自己想要的功能和 fix ,都欢迎哈。
近期计划:
1.docker 镜像发布
2.桌面共享开启语音通道开关,增加实用性
3.用户自定义 stun/turn 服务配置
4.增加类似于 RTT 的机制,最大化利用带宽
如果是公司局域网呢 是不是可以直接打通
先 star 一个
是的 发现是局域网 ,直接就内网传输了。
感谢老哥的鼓励嘿嘿
op 解决了传统 RTC 打洞服务和信令服务在企业防火墙中被拦截的问题吗?
先 star 一个+1
回头试试 看能不能战胜奇安信
star 一个,桌面共享还是蛮有用的
试了下手机向 PC 传文件很好用,已 star 。提个建议,取件码用 6 位数字太简单了
有个类似的,大家伙儿可以体验一下 explorer.kuraa.cc/#/
诚信请教: 国内打洞成功的概率有多大?
nice job ,也有很多类似的大热产品可供参考:
send-anywhere.com/
github.com/localsend/localsend
我们前些年做视频会议的布点数据来看,40%-50%左右
p2p 被封啥,是没法建立链接的
是的 临时共享一下桌面 分享一些东西 还是很好的。 后面可以考虑开分享左面的时候,语音通道也同步传输起来。这样可能更实用一些。
的确 后面更新成字母+数字。看着也舒服一些
说实话 这个我真的不是很清楚。
flutter 点赞!!
试了下感觉不错,已 Star✨
一直不成功,是局域网内的 2pc 主机
看一下防火墙 和 是否禁止了 UDP
感谢鼓励
我也写过,甚至也是用的 webrtc
但最后还是用回 kde connect
chrome://webrtc-internals/ 看一下 webrtc 状态
kde connect 挺好的 没必要自己写。
别的不说,这界面是真漂亮
能不能固定配对设备呢,每次输入取件码,比较麻烦
感谢分享,这个成功率挺不错。
有啥快捷键么,全屏了,没法退出了-
下一步是不是做成远控了 哈哈哈
网页版 rustdesk
那正好你可以在你的服务端统计一下这个概率。 多问一句: 有没有局域网环境做优化?(我个人)在局域网中的互传文件还用的挺多。
纯内网无法用吧?开始的信令怎么交互?
太厉害了,项目难度高
之前在前司做视频会议的产品的时候,是通过企业防火墙预授权指定打洞端口来建连的,没想到这么多年过去了 RTC 的弊端还是没有得到改善
一个人搞的?
win11 上 vmware 虚拟机 ubuntu24.04 ,nat 模式网络,在虚拟机上运行程序,开启桌面共享,win11 访问,无法建立连接
提个建议,stun 服务器可以用户自行输入
原则就是直观,直接,不拖泥带水,开门即是主题,传输文件 or 文字 or 共享桌面。
这个在 TODO 计划了。
是的
没办法用。
可以 chrome://webrtc-internals 看一下
感觉这个难以改善
服务器没有任何存储逻辑,做不到这些
f11 试一试?
状态有点多。其他还好
服务器上没有记录任何数据 而且我这个临时 demo 的数据量也不够。
rustdesk 难道 100% 我的难度 0.001%
和 CuteHttpFileServer/chfs 功能有点像,不过好像 chfs 并不是 P2P ,是一个 HTTP Server 服务器,平时会用这个软件的 webda 功能,映射到本地 PC 的网络磁盘,存取文件会非常方便。
iscute.cn/chfs
如果软件能带上 webdav 就更方便通用了
信令服务器是什么,stun 服务器是什么
牛啊,STAR 学习一下
局域网内大概率无法连接,偶尔能连接成功
局域网支持组播吗?
不懂技术,单纯用户角度来说,传输速度有点慢...
太棒了,这样的聚合服务真的很需要,还可以自己部署。给个⭐
好奇你是怎么添加的图片在这个帖子里面的 ~
已 star ,共享桌面支持 远程操控吗?
企业内网用应该还是需要企业内网的 STUN 服务器吧。
先 star 一下,晚上试试
信令服务器是 是 用来交换 ICE 打洞数据的。 也是就是这个开源程序的 server UI 上的 ws 链接的服务器。STUN 服务器的主要作用是帮助位于 NAT 网络(网络地址转换)后面的设备发现其公共 IP 地址和端口号,以便在设备之间建立直接的 P2P 通信。
取决于你的两个设备带宽。 后面引入 RTT 会进一步优化传输速度
不支持。
感谢佬
v2 有教程。你搜索一下
对的。
不支持
先 star 后再用
感谢分享, 很好用
提个意见, 取件码可否屏蔽掉 O 和 0
第一次出现很容易搞混不知道是哪个
可以的,就喜欢这样开箱即用的产品,必须 star ,很棒!
客户公司有一台应用服务器在他们自己单位的机房中运行,每天自动备份可以通过局域网,FTP 方式传入一台备份设备中。但是销售当初给客户许诺的是不低于 3T 的企业云备份。这样的云主…
nexus3 上来啥事没干就占个 2GB 以上内存, 动不动就停止服务....有没有它的平替, 主要是代理 docker 镜像, 支持代理 dockerhub/ lscr 等站…
阿里云 RDS mysql5.7 , 一个几百行的表,突然一条插入的记录自增 ID 成了 2147483647 ,已经排除了无限循环错误写入导致的 ID 自增溢出,或者在插入时…