没想到拖了这么久,当初顶的小目标终于实现了! 文件传输/桌面共享 已经都支持了!!!! 撒花~ 撒花~ 撒花~
项目起因是因为要经常传一些文件到 win 服务,下载网盘啥的好麻烦,又要登录又要先下载客户端,也想了解下 webrtc 技术。摸着需求就开始过河了!!
终于这个上个周末把 UI 一些状态 桌面共享 文件传输 ack 都加上了。
项目后端 Go 前端是 react nextjs GO server 只作为信令转发,p2p 建立后传数据文本/共享桌面/文件都不会经过服务器,安全!隐私!
本项目和 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 和端口。 打洞友好程度:最低,穿透难度最大。
![]() | 1 blankmiss 46 天前 如果是公司局域网呢 是不是可以直接打通 |
2 zhhbstudio 46 天前 先 star 一个 |
4 molika OP @zhhbstudio 感谢老哥的鼓励嘿嘿 |
5 yuanxing008 46 天前 op 解决了传统 RTC 打洞服务和信令服务在企业防火墙中被拦截的问题吗? |
6 XhivaW 46 天前 先 star 一个+1 回头试试 看能不能战胜奇安信 |
![]() | 7 sssxyd 46 天前 star 一个,桌面共享还是蛮有用的 |
![]() | 8 yh7gdiaYW 46 天前 试了下手机向 PC 传文件很好用,已 star 。提个建议,取件码用 6 位数字太简单了 |
![]() | 9 andyskaura 46 天前 有个类似的,大家伙儿可以体验一下 https://explorer.kuraa.cc/#/ |
![]() | 10 vfs 46 天前 诚信请教: 国内打洞成功的概率有多大? |
11 capric 46 天前 |
13 molika OP @yuanxing008 p2p 被封啥,是没法建立链接的 |
![]() | 18 woshi233 46 天前 试了下感觉不错,已 Star |
![]() | 19 deepseek 46 天前 |
22 NessajCN 46 天前 我也写过,甚至也是用的 webrtc 但最后还是用回 kde connect |
25 yangggg 46 天前 别的不说,这界面是真漂亮 |
![]() | 26 zhoublackcat 46 天前 能不能固定配对设备呢,每次输入取件码,比较麻烦 |
![]() | 28 crime1024 46 天前 有啥快捷键么,全屏了,没法退出了- 下一步是不是做成远控了 哈哈哈 |
![]() | 29 wangtian2020 46 天前 网页版 rustdesk |
31 wsseo 46 天前 纯内网无法用吧?开始的信令怎么交互? |
![]() | 32 Rorysky 46 天前 太厉害了,项目难度高 |
33 yuanxing008 46 天前 @molika 之前在前司做视频会议的产品的时候,是通过企业防火墙预授权指定打洞端口来建连的,没想到这么多年过去了 RTC 的弊端还是没有得到改善 |
34 fffq 46 天前 一个人搞的? |
![]() | 35 superychen 46 天前 win11 上 vmware 虚拟机 ubuntu24.04 ,nat 模式网络,在虚拟机上运行程序,开启桌面共享,win11 访问,无法建立连接 |
36 Vintingb 46 天前 提个建议,stun 服务器可以用户自行输入 |
41 molika OP @superychen 可以 chrome://webrtc-internals 看一下 |
42 molika OP @yuanxing008 感觉这个难以改善 |
43 molika OP @zhoublackcat 服务器没有任何存储逻辑,做不到这些 |
47 molika OP @wangtian2020 rustdesk 难道 100% 我的难度 0.001% |
48 a852695 46 天前 和 CuteHttpFileServer/chfs 功能有点像,不过好像 chfs 并不是 P2P ,是一个 HTTP Server 服务器,平时会用这个软件的 webda 功能,映射到本地 PC 的网络磁盘,存取文件会非常方便。 http://iscute.cn/chfs 如果软件能带上 webdav 就更方便通用了 |
49 wsseo 46 天前 信令服务器是什么,stun 服务器是什么 |
50 dufzh 46 天前 牛啊,STAR 学习一下 |
51 midraos 46 天前 局域网内大概率无法连接,偶尔能连接成功 |
52 thomaspaine 46 天前 局域网支持组播吗? |
53 Eddiegaao 46 天前 不懂技术,单纯用户角度来说,传输速度有点慢... |
![]() | 54 96 46 天前 太棒了,这样的聚合服务真的很需要,还可以自己部署。给个 |
55 rcj6056 46 天前 好奇你是怎么添加的图片在这个帖子里面的 ~ |
![]() | 56 surbomfla 46 天前 已 star ,共享桌面支持 远程操控吗? |
57 tavimori 46 天前 企业内网用应该还是需要企业内网的 STUN 服务器吧。 |
![]() | 58 Jasonfly 46 天前 先 star 一下,晚上试试 |
59 molika OP @wsseo 信令服务器是 是 用来交换 ICE 打洞数据的。 也是就是这个开源程序的 server UI 上的 ws 链接的服务器。STUN 服务器的主要作用是帮助位于 NAT 网络(网络地址转换)后面的设备发现其公共 IP 地址和端口号,以便在设备之间建立直接的 P2P 通信。 |
65 molika OP @thomaspaine 不支持 |
66 kevin249 46 天前 先 star 后再用 |
![]() | 67 ahjsrhj 46 天前 感谢分享, 很好用 提个意见, 取件码可否屏蔽掉 O 和 0 第一次出现很容易搞混不知道是哪个 |
![]() | 68 SnowHall 46 天前 可以的,就喜欢这样开箱即用的产品,必须 star ,很棒! |
![]() | 69 InDom 46 天前 东西很棒, 是我一直想要的东西!感谢. 给几个非专业意见, 楼主可以自行判断需求是否合理且可实现. 可以先创建房间, 后选择文件, 比如我通过 https://transfer.52python.cn/#{roomId} 打开, 就默认是这个房间. 或者打开页面就创建一个临时房间, 手机扫码就直接进入房间. 如果两个(或多个)设备都打开了同一个 roomId 则相互显示对方的设备名. 我可以直接拖拽文件到对应的设备后两个设备直接联通发送文件(或文本). 有文件投递给自己时直接弹窗要求保存即可. 页面效果可以参考 https://drop.fydeos.com/ 不过他们是局域网发现, 和楼主实现的功能还不一样. 也许还可以把他们这个局域网自动发现也搞出来(后话). |
![]() | 70 ccvip 46 天前 很好的产品, 同运营商打洞成功 |
71 Raw778 46 天前 局域网传文件,如果中途中断了,就无法重连了。 |
![]() | 72 yufeng0681 46 天前 做成个集群项目,走商业流程呢? 1 、 服务器大家都可以建立, 注册到你定义的网络 [等做大了,可以考虑做有门槛的服务器网络] 2 、作为服务器,提供的是信令服务,建立 P2P 打动成功 [让各种情况下的终端机都能 P2P 连接,包括 IPV6] 3 、服务器辅助建立数据通道成功收取一次费用(比如 2 分钱一次) 4 、终端机做成 SDK 和业务代码(当例子用),让第三方参考开发点对点类的应用: 4.1 、视频通话 4.2 、远程协助 4.3 、私家数字花园 5 、 你就赚管理系统的费用,服务器提供者赚建立数据通道的费用,消费者支付点对点应用的钱,第三方应用开发赚消费者的钱 [这块可以先开发成扣费模式, 给消费者 10 块钱的信用抵扣钱,用于发展真正有需求的用户,有黏性的用户] |
73 kfpenn 46 天前 前端时间也做过 p2p ,用的 libp2p ,网络环境太复杂了,打洞是个问题 |
74 deplives 46 天前 佬,是不是太强了 |
![]() | 75 Lemonadeccc 46 天前 做 webrtc 的很少,你很厉害 |
76 honkew 46 天前 我也做了一个 https://record.rw2.cc/ |
![]() | 77 zhangk23 46 天前 赞 |
![]() | 78 lizhenda 46 天前 做的很好,试用了下很方便! |
79 peerless 46 天前 谢谢分享 |
![]() | 80 MYDB 45 天前 via iPhone 可惜我是一刀切禁用了浏览器的 udp |
81 hexiaowu1993 45 天前 大佬,真的强! |
![]() | 82 Bo0 45 天前 已 star 可能是网络问题,RTC 始终未连接。小白会一脸懵,建议加解决引导。 另外不知道是否支持非局域网,手机关了 WiFi ,也是 RTC 未连接。 |
87 molika OP @yufeng0681 感谢您的建议, 说实话 自己的小需求,顺带学习一下 没想这么多,直接就开始干了,么想到大家对这个东西热度竟然这么高。 |
89 molika OP 哇偶 不错 这个房间里面互相打洞吗 |
![]() | 92 Livid MOD PRO |
![]() | 96 iamtsm 44 天前 |
![]() | 98 hongchends1 44 天前 666 |
100 wenyifancc 43 天前 期待支持配置 turn 服务来兼容跨网转发的场景 |