公网大文件快速传输方案
在运维 Windows 服务器时,我们经常面临一个痛点:如何将本地的大文件(如安装包、数据库备份)快速、稳定地传输到远程服务器?
使用远程桌面(RDP/MSTSC)自带的复制粘贴经常遇到速度慢、卡死甚至中断的问题;而使用网盘又涉及到上传下载两次传输,效率极低。
本文将介绍一款开源神器 Croc,并教你通过自建中转(Relay)模式,绕过运营商的 UDP 干扰,利用云服务器的公网带宽,实现满速、断点续传的稳定传输。
方案优势
- 极致速度:利用 TCP 协议建立直连通道,跑满服务器购买的物理带宽。
- 断点续传:网络波动导致断开后,无需重头开始,支持进度恢复。
- 安全:全程端到端加密(PAKE),中转服务器仅做数据流转发,无法解密文件。
- 简单:无需配置复杂的 FTP/SMB 服务,单文件绿色免安装。
第一步:环境准备与软件下载
我们需要在**本地电脑(发送端)和远程服务器(接收端)**上都下载 Croc。
1. 下载软件
请访问 GitHub 官方发布页:https://github.com/schollz/croc/releases
针对绝大多数 Windows 用户(包括 Windows 10/11 和 Windows Server),请务必下载以下版本:
👉 croc_v10.3.1_Windows-64bit.zip
2. 安装(免安装)
Croc 是纯绿色的命令行工具:
- 下载后解压压缩包。
- 你会看到一个
croc.exe文件。 - 技巧:为了方便后续操作,建议直接在该文件夹地址栏输入
cmd并回车,即可打开当前路径的命令行窗口。
第二步:配置远程服务器(接收端)
为了保证传输不受网络波动影响,我们将把远程服务器配置为"中转站"。这需要利用到服务器的公网 IP。
1. 阿里云/腾讯云后台放行端口
这一步至关重要,否则无法连接。
请登录您的云服务器控制台,找到 "安全组" 设置,添加入方向规则:
- 协议:TCP
- 端口范围:
9009/9013(即开放 9009 到 9013) - 授权对象:
0.0.0.0/0
2. 启动中转服务
在远程服务器上,打开一个 CMD 窗口,输入以下命令并回车:
croc relay
- 成功标志:屏幕显示
starting TCP server on :9009等字样。 - 注意:请勿关闭此窗口,保持其一直运行。它相当于建立了一座"桥梁"。
第三步:开始文件传输
传输的逻辑顺序是:发送端先"发货"建立房间 -> 接收端再"取货"。请严格按照以下顺序操作。
1. 发送端操作(本地电脑)
在本地电脑存放文件的目录下,打开 CMD 窗口。
我们需要输入一条命令,告诉 Croc 使用我们刚才搭建的远程中转服务。
命令格式:
croc --relay "远程公网IP:9009" send --code 自定义密码 要发送的文件路径
示例命令:
假设远程服务器 IP 为 1.2.3.4,你想设置密码为 6666-secret,发送名为 data.zip 的文件:
croc --relay "1.2.3.4:9009" send --code 6666-secret data.zip
输入后回车,你会看到界面显示 Sending...,此时程序正在等待接收端连接。
2. 接收端操作(远程服务器)
回到远程服务器,新建第二个 CMD 窗口(不要关掉刚才那个 relay 窗口)。
我们需要输入命令,告诉 Croc 连接到"自己"的中转服务来取货。
命令格式:
croc --relay "127.0.0.1:9009" 刚才设置的自定义密码
示例命令:
croc --relay "127.0.0.1:9009" 6666-secret
输入后回车,系统会检测到发送请求,并询问是否接收:
Accept 'data.zip' (xxx MB)? (y/n)
输入 y 并回车,即可开始传输。
常见问题与排查
Q1: 为什么提示 "room not ready"?
- 原因:通常是因为操作顺序反了。
- 解决:请务必先在发送端执行
send命令,确认界面显示等待连接后,再去接收端执行接收命令。
Q2: 为什么发送端一直卡在 "connecting" 连不上?
- 原因:远程服务器的防火墙或安全组没开。
- 解决:请检查云服务器后台"安全组",确保 TCP 9009 端口已对公网开放。
Q3: 传输速度受什么限制?
- 在自建中转模式下,速度取决于云服务器的公网带宽上限。
- 如果购买的是 5M 带宽,速度上限约为 600KB/s;如果是 100M 带宽,速度可达 10MB/s 以上。如果需要临时传输超大文件,建议在云控制台临时升级带宽(按量付费),传完再降回来,性价比极高。
通过以上步骤,你就建立了一条稳定、私有的文件传输隧道,从此告别 RDP 复制粘贴的卡顿烦恼!