从Arch Linux向32位Windows 7传输100GB文件的最简最快方案
最简最快的传输方案:SMB共享(无需额外工具,多线程高速传输)
考虑到你的场景:32位Windows 7原生支持SMB协议,而Arch Linux可以快速搭建SMB共享,这应该是无需额外安装工具、速度最快的方案——既避免了wget/curl的串行慢速度和编码问题,也比SSH/scp的单线程传输高效得多,而且完全不用在老旧的Win7上折腾工具。
具体步骤
第一步:在Arch Linux上搭建SMB共享
- 安装samba服务:
sudo pacman -S samba - 准备要共享的目录:
假设你要传输的文件目录是/home/your-user/transfer-files,先开放权限(因为你无需考虑安全性):sudo chmod 777 /home/your-user/transfer-files - 配置SMB共享:
编辑samba的配置文件:
在文件末尾添加以下内容(替换路径为你的实际目录):sudo nano /etc/samba/smb.conf[LinuxTransfer] path = /home/your-user/transfer-files read only = no guest ok = yes browseable = yes create mask = 0777 directory mask = 0777 - 重启samba服务:
sudo systemctl restart smb nmb - 获取Linux的局域网IP:
运行以下命令找到WiFi接口的IP(通常是wlan0或wlp2s0开头的条目):
记下类似ip a192.168.xx.xx的IP地址。
第二步:在Windows 7上访问共享并传输文件
- 打开Windows资源管理器(Win+E),在地址栏输入:
替换成你刚才记下的Linux IP地址。\\192.168.xx.xx\LinuxTransfer - 此时你应该能直接看到Linux上的共享文件,像操作本地文件夹一样,直接复制粘贴到Win7本地目录即可。
Win7的文件复制是多线程的,加上SMB协议的优化,速度会远快于串行的wget/curl,而且支持断点续传——如果中途WiFi断开,重新连接后继续复制会自动跳过已传输的文件。
为什么不选其他方案?
- Curl/Wget:单线程传输速度慢,还要处理目录下载、西里尔字母编码问题,完全没必要折腾;
- SSH/SCP:默认是单线程传输,速度不如SMB多线程,而且Win7的Git Bash虽然支持scp,但配置和操作都不如SMB直观;
- USB线缆:虽然USB3.0速度快,但需要把Linux配置为USB大容量存储设备(加载
g_mass_storage模块等),操作繁琐,不如SMB通过WiFi传输方便。
内容的提问来源于stack exchange,提问作者hlebyshek




