公网大文件快速传输方案

在运维 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 是纯绿色的命令行工具:

  1. 下载后解压压缩包。
  2. 你会看到一个 croc.exe 文件。
  3. 技巧:为了方便后续操作,建议直接在该文件夹地址栏输入 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 复制粘贴的卡顿烦恼!