跳到主要内容

netcat

netcat 的常见实现有 OpenBSD 和 GNU 两种,参数及行为并不完全相同,以下示例均基于更常见的 OpenBSD 版本
其中 GNU 版本在 2004 年后就未发布过新版本,Arch Linux 于 2025 年 9 月将其从官方仓库移除
部分发行版如 Arch LinuxAlpine Linux 会将 Debian 维护的 netcat-openbsd 作为上游进行打包

参考来源:

模拟 HTTP 协议返回固定响应

(
while true; do
echo -e "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\nContent-Length: 5\r\nConnection: close\r\n\r\nhello" | nc -l -p 8080;
done
)

模拟 HTTP 协议返回文件内容

echo -e "HTTP/1.1 200 OK\r\nContent-Type: image/png\r\nContent-Length: $(stat -c%s nyancat.png)\r\nConnection: close\r\n\r\n$(cat nyancat.png)" | nc -N -l -p 8080

TCP 传输文件

# 接收方监听端口并写入文件
nc -l 12345 > dir.tar

# 发送方读取文件并发送数据
tar -cO ./Directory | nc -N 10.0.3.201 12345