用nc -l配合重定向传文件的核心是接收方先监听并重定向到目标文件,发送方再通过nc推送源文件,全程无需ssh或ftp,局域网内速度接近磁盘极限,但需确保端口放行、使用真实内网ip、正确重定向符号、加-n强制关闭连接,并务必用md5sum或sha256sum校验完整性。

用 nc -l 配合重定向传文件,核心是“接收方先监听、发送方后推送”,整个过程不依赖 SSH 或 FTP,局域网内速度接近磁盘吞吐极限,但要注意几个关键动作才能一次成功。
接收方必须先启动监听并重定向到文件
在目标机器(比如你要存文件的那台)上运行:
-
nc -l 9999 > received.zip—— -l 表示监听模式,不能漏;端口选一个没被占用的(如 9999),可用ss -tuln | grep 9999确认 - 如果机器开了防火墙(如 CentOS 7+ 的 firewalld),要手动放行:
sudo firewall-cmd --add-port=9999/tcp --permanent && sudo firewall-cmd --reload - 别用
127.0.0.1当 IP,得用本机真实局域网地址,查法:ip -4 a | grep "inet " | grep -v "127.0.0.1"
发送方用输入重定向推送文件
在源机器上执行:
nc 192.168.1.100 9999 —— 注意是 <strong>(小于号),不是 <code>>;写反了会清空本地文件- IP 必须是接收方的真实内网 IP,不是域名,也不加端口在地址里
- 文件名含空格或特殊字符时,加上引号:
nc 192.168.1.100 9999 - 传输中无提示,可另开终端运行
ls -lh received.zip观察大小是否持续增长
大文件或目录建议加 -N 或走 tar 流式传输
默认 nc 会等 EOF 关闭连接,某些环境可能卡住不退出:
- 发送方加
-N强制关闭:nc -N 192.168.1.100 9999 - 更推荐流式压缩传输(支持目录、省空间、自动解压):
接收方:nc -l 9999 | tar -xzf -
发送方:tar -czf - /path/to/dir | nc 192.168.1.100 9999
传完务必校验文件完整性
nc 不做校验、不重传、不报错,传完看似成功,实际可能损坏:
- 两边分别算 md5:
md5sum received.zip和md5sum file.zip,比对输出是否一致 - 也可用 sha256sum,更安全:
sha256sum *.zip - 如果校验失败,优先检查是否漏了
-N、防火墙是否拦截、端口是否被其他进程占着











