两台电脑之间传输文件,首先要确认二者是否接入同一套网络。如果都连在同一个路由器,有线或者Wi-Fi接入都算作局域网环境,这种场景操作最简单,直接启用本地文件共享即可。Windows系统这边右键选中需要传输的文件夹,打开属性面板找到共享选项,新增具备访问权限的用户账号,另一台电脑打开资源管理器,在地址栏填入\对方IP,就能浏览共享内容。Mac设备要先进入系统设置开启文件共享,另一台Mac打开访达,使用“连接服务器”功能,填入smb://对方IP建立连接。防火墙经常拦截这类内网访问,把网络配置切换为专用网络,大多可以解决连通问题。不想花时间调整共享权限,也可以安装LocalSend或者飞秋,两台设备同时启动软件,同一局域网内程序会自动识别彼此,直接拖拽文件发送,传输速度能跑满内网带宽上限。

要是一台设备处于外网,另一台放在家里或者公司内网,情况会复杂不少。家庭内网设备一般没有公网IP,外网端没办法主动发起连接访问内网机器。这种场景下,得让内网设备主动向外建立连接。门槛最低的办法就是微信、QQ直接拖拽文件发送,小体积文件够用,但大文件会受到平台大小限制,视频文件还会被自动压缩。网盘中转也是很普遍的选择,百度网盘、阿里云盘、OneDrive都可以使用,文件先上传云端再由对方下载;缺点是免费账号普遍存在限速,并且文件数据会经过第三方服务器存储。一次性传输大容量文件,可以试试奶牛快传、文叔叔、WeTransfer,生成分享链接发给接收方,文件到期自动删除,适合单次交付。
想要长期稳定在两台机器之间互传数据,虚拟组网工具的体验会优于网盘中转。ZeroTier和Tailscale都能把两台电脑划入同一个虚拟局域网,两端安装客户端登录同一个网络,之后就可以像处在同一个路由器下那样,通过SMB或者SFTP访问文件。Tailscale配置步骤更简单,ZeroTier需要手动创建网络ID。这两个工具优先尝试P2P直连,打洞失败才会走中继节点;国内网络环境下P2P能否连通,要看运营商线路,但是连通后就能正常传输。文件传输全程不经过第三方存储服务器,隐私性更好,传输速度上限取决于双方的上行带宽。
内网穿透是另外一套可行方案。frp需要自备一台拥有公网IP的服务器,把内网端口映射到公网。花生壳这类服务商直接提供中继服务,开箱就能使用,但免费套餐限速明显,传大文件体验很差。配置完成之后,外网就可以直接访问内网的共享文件夹或者WebDAV服务。WebDAV的优势是可以挂载成本地网络驱动器,操作起来和本地硬盘几乎没有差别。Nextcloud能够搭建私有云盘,功能丰富完整,但维护成本偏高。
当两台设备都持有公网IP,SSH搭配rsync是最干净利落的方案。Linux主机之间执行rsync -avz命令,支持增量同步和断点续传,节省流量消耗。Windows电脑可以安装OpenSSH客户端,或者用WinSCP图形界面拖拽文件。FTP协议虽然老旧,大量设备都支持接入,但属于明文传输,绝对不能直接在公网裸跑使用,要么嵌套SSH隧道,或者改用SFTP协议。SCP用法简洁,单条命令就能完成单个文件或者整个目录的传输。
公司内网向外发送文件时,防火墙和代理规则经常拦截端口,很多端口无法向外建立连接。这种场景优先选用走443端口的方案,更容易穿过防火墙。Cloudflare Tunnel可以把内网服务暴露到公网,不需要公网IP,底层依托Cloudflare的HTTPS通道。Tailscale也提供类似的funnel功能。不过公司环境存在合规要求,私自搭建内网穿透有可能违反企业规定,操作前务必咨询IT部门。
传输之前,把零散的大量小文件打包成压缩包,能够减少传输中断概率,降低元数据带来的额外开销。超大文件可以拆分成多个分卷压缩包,接收方下载完成之后再合并复原。重要文件传输完毕,最好校验哈希值,MD5或者SHA256都能用来核对文件完整性,确认文件没有损坏。敏感资料传输前要加密,7z设置密码打包,或是用VeraCrypt制作加密容器。公网传输尽量选用SSH、HTTPS、SFTP这类加密协议,明文FTP不要直接使用。
挑选传输方案主要看三点:文件体积大小、传输频次、双方网络环境。一次性传小文件,微信QQ最简单。需要频繁同步文件,Syncthing或者虚拟组网工具更合适。偶尔传输大文件,可以网盘中转或者临时快传工具。如果还需要远程操作对方电脑,远程桌面自带的文件传输功能也可以利用。不存在能适配全部场景的万能方案,很多时候需要组合使用。