nc局域网传文件快但无校验重传和进度,易损坏;接收方需nc -l 9999 > received.zip监听,确认端口未占且防火墙放行;发送方用nc 192.168.1.100 9999
nc 传文件在局域网内确实快,但默认不校验、不重传、不显示进度——传完才发现文件损坏,是常见翻车点。
接收方必须先启动监听,且端口要开放
接收方(比如你的本地机器)运行:
nc -l 9999 > received.zip。注意三点:
-l必须加,否则 nc 当成客户端去连别人;- 端口号如
9999要选未被占用的,用ss -tuln | grep 9999确认;- 如果是在云服务器或带防火墙的机器上,得手动放行该端口:CentOS 7+ 用
sudo firewall-cmd --add-port=9999/tcp --permanent && sudo firewall-cmd --reload,否则发送方会卡住或报Connection refused。发送方用重定向写入,别漏了小于号
发送方执行:
nc 192.168.1.100 9999 。关键细节:
Zynq Linux Hardware Debug下载Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
是输入重定向,不是拼写错误;写成 <code>>就反向了,会把本地文件清空;- IP 地址必须是接收方的真实局域网 IP(不是
127.0.0.1),可用ip a查;- 如果文件名含空格或特殊字符,记得用引号包裹:
nc 192.168.1.100 9999 ;- 传输中没输出、没进度条,可另开终端用
ls -lh received.zip观察文件大小是否增长。大文件建议加
-N或用tar流式压缩nc 默认等待 EOF,而某些 shell 在管道末尾不发 FIN 包,导致接收方卡住不退出。解决办法:
- 发送方加
-N参数强制关闭连接:nc -N 192.168.1.100 9999 ;- 更稳妥的是边压边传:
接收方:nc -l 9999 | tar -xzf -
发送方:tar -czf - /path/to/dir | nc 192.168.1.100 9999;- 这样既省空间又避免单文件写满磁盘,还天然支持目录传输。
传完务必校验 MD5,nc 不做任何完整性检查
nc 本质是裸 TCP 流转发,网络丢包、缓冲区截断、Ctrl+C 中断都可能导致文件末尾缺失。务必验证:
- 发送方算一次:
md5sum bigfile.tar.gz;- 接收方等传完再算:
md5sum received.zip;- 两行输出的哈希值必须完全一致,差一个字符就说明损坏;
- 若发现不一致,不要重试原命令——先确认是否用了
-N,再检查双方磁盘剩余空间(df -h)和nc版本(nc -h输出里看是不是netcat-openbsd,它对-N支持更稳)。真正容易被忽略的是:nc 传完不会告诉你成功,也不会自动退出接收进程;你看到命令行回到 prompt,不代表文件写完了——得等
received.zip大小不再变化,且nc进程已消失(ps aux | grep nc),才算真正落地。












