V2EX 12小时前
[分享发现] 别再用网盘传大文件了,教你搭一个私人“阅后即焚”的文件传输服务
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

transfer.zip-web是一个基于WebRTC技术的开源文件传输项目,允许用户快速、安全地分享文件,无需上传到服务器。通过Docker快速部署,用户可以轻松搭建自己的文件传输服务。该项目采用P2P直连和Relay中转两种模式,根据网络状况自动选择最佳传输方式。小文件走P2P,大文件或网络不佳时则通过服务器中转。使用前需注意域名配置、HTTPS设置及服务器流量监控,以确保服务稳定运行。体验便捷,安全可靠,是分享文件的理想选择。

🌐 快速部署与便捷体验:transfer.zip-web项目支持Docker快速部署,用户只需几行命令即可搭建自己的文件传输服务。用户可以通过上传文件生成链接和二维码,分享给朋友,实现文件秒传,体验超越传统网盘的便捷性。

💡 核心技术与工作原理:该项目核心技术是WebRTC,实现浏览器间的P2P直连,无需服务器中转小文件,节省服务器带宽。当网络环境复杂或传输大文件时,将采用Relay服务器中转,保证文件传输的可靠性。这种智能的传输方式,确保了文件分享的高效性和灵活性。

⚠️ 使用注意事项与优化建议:在使用transfer.zip-web时,用户需要注意传输链接的时效性,上传页面关闭则链接失效。此外,该项目不存储文件,而是安全送达。为了提升用户体验和安全性,建议配置域名、HTTPS证书,并监控服务器流量,特别是传输大文件时,以避免流量超标。

最近看到一个 transfer.zip-web 的开源项目,稍微体验了一下,感觉挺不错的!

在咱们自己动手之前,你完全可以先去官方的体验网站感受一下。

官方体验地址: https://transfer.zip

动手搭建:用 Docker 快速启动

项目地址: https://github.com/robinkarlberg/transfer.zip-web

假设你已经有了一台自己的服务器,并且装好了 Docker 和 Docker Compose 。如果没有,可以快速搜一下教程,现在这基本是服务器的标配了。

登录你的服务器,跟着下面的命令敲就行:

# 1. 从 GitHub 把项目代码弄下来git clone https://github.com/robinkarlberg/transfer.zip-web.git# 2. 进入项目目录cd transfer.zip-web# 3. 创建一个默认的配置文件# 这条命令会帮你生成一个 .env 文件,里面是一些基本配置,我们先用默认的sh ./createenv.sh# 4. 一键构建并启动!docker compose build && docker compose up -d

搞定!服务已经跑起来了。因为 docker-compose.yml 配置中限制了只允许本地 IP 访问,并且我取消这段配置后,通过 IP 访问页面会出现报错的问题,有知道原因的可以评论区留言一下!

所以你还需要配置一个域名代理到本地,可以在服务器上装个 nginx,配置一个反向代理,按如下配置即可,这段在官方介绍中也有说明,关于反向代理的配置方式,可以自行搜索一下!

# Put this at the topmap $http_upgrade $connection_upgrade {    default upgrade;    '' close;}# Put this in your server-block# server {# ...    location /ws {        proxy_pass http://localhost:9001/ws;        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection $connection_upgrade;        proxy_set_header Host $host;    }# ...# }

你可以马上试试:

    在页面上点击 [ Upload File ] ,随便选个文件,越大越能看出效果。它会立刻生成一个链接和一个二维码。把链接发给你的朋友(或者自己用手机扫码也行),你会看到页面提示“Waiting for receiver”。当对方打开链接,文件传输就开始了。进度条会实时滚动,速度基本就取决于你俩的网速。

这体验,是不是比任何网盘都直接?

它到底是怎么工作的? P2P 还是服务器中转?

你可能会好奇,既然不存文件,那它是怎么从我的浏览器跑到朋友的浏览器的?这正是这个项目最聪明的地方,它会根据情况自动选择最佳传输路线。

1. 首选路线:WebRTC 点对点直连

这东西的核心技术是 WebRTC (网页实时通信),说白了,就是让两个浏览器可以直接“对话”。

当你朋友打开分享链接时,我们刚才搭的服务里的“信令服务器”( Signaling Server )会当一次中间人,帮你们俩的浏览器交换一下网络地址之类的信息,让它们能互相找到对方。一旦“握手”成功,信令服务器就功成身退了,数据直接在你和朋友的浏览器之间飞,不占用你服务器的一丁点带宽。这就是为什么它能传大文件,因为服务器根本不碰数据本身。

2. 后备路线:Relay 服务器中转

当然,现实没那么理想。如果你或你的朋友网络环境比较复杂,比如躲在好几层路由器或者严格的公司防火墙后面,P2P 直连可能会失败。

为了保证文件一定能传到,transfer.zip-web 设计了后备方案:Relay (中继)模式。

直连失败时,文件数据会先加密,然后一段一段地发到你的服务器,再由服务器转发给对方。这时候,你的服务器就成了一个临时的“快递中转站”。数据只是流过,并不会被存下来。

一个非常关键的细节:根据项目的设定,当文件大于 10MB 时,为了保证传输的稳定和速度,程序会强制走 Relay 服务器中转模式,可以自行修改代码,处理这一块的限制。这一点一定要知道!这意味着,你用它传大文件时,是会实打实地消耗你服务器的带宽和流量的。

所以,真实的工作模式是:

用之前,你需要知道的几件事

在你把它当成主力工具前,还有几个小贴士:

    链接是“活”的:传输链接和你打开的网页是绑定的。如果你上传了文件然后关了网页,链接就失效了。你必须保持上传页面开着,直到朋友接收完。真的不存文件:再强调一遍,这不是网盘。它的使命就是“安全送达”,送到了就没它事了,服务器上啥也不留。上个域名和 HTTPS 更靠谱:用 IP 地址访问毕竟不方便也不够安全。我强烈建议你给它配个域名,然后用 Nginx 或 Caddy 这类工具做个反向代理,顺便把免费的 HTTPS 证书也配上。这能让你的服务看起来更专业,用起来也更安心。盯着点服务器流量:既然知道了传大文件会吃服务器带宽,那就要对你服务器的流量套餐心里有数。如果你和朋友天天传几十 G 的东西,那普通的小水管服务器可能就吃不消了。

原文: https://mp.weixin.qq.com/s/UfEGe_lw0lSjFmZ2wrbwCw

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

transfer.zip-web 文件传输 WebRTC P2P
相关文章