Netcat 不加密传输工具

Netcat 网络工具在局域网文件传输中的应用

Netcat 不加密传输工具

Netcat (nc) 是一个功能强大的网络工具,可以在局域网中以不加密方式进行文件传输,速率大于SCP加密文件传输方式。

1 安装

1
2
# Ubuntu/Debian
sudo apt install -y netcat

1.1 基本参数

参数 说明
-l 监听模式
-p 指定端口
-v 显示详细信息
-n 不解析 DNS
-w 超时时间 (秒)
-q 传输完成后等待时间
-u UDP 模式

2. 文件传输

2.1 发送单个文件

可以结合 pv (Pipe Viewer) 显示传输进度, 安装 pv命令如下

1
sudo apt install -y pv
  • 接收端需要打开端口,并且把接受到的内容保存到文件中, 下面<port>表示端口,file表示保存的文件名
    1
    
    nc -l -p <port> | pv > file
    
  • 发送端需要向指定的ip和端口发送文件, 下面ip和端口表示接收端ip和端口,需要先启动接收端命令, file表示发送的文件
    1
    
    pv file | nc <ip> <port>
    

2.2 压缩传输

直接传输文件/目录传输量太大,结合 tar + gzip 压缩可以减少传输时间:

1
2
3
4
5
6
7
# 发送端 (压缩) -p 后面的数字表示线程,
# file.tar.gz表示发送的文件压缩包名,
# path/to/directory 表示发送的文件目录/文件
tar --use-compress-program="pigz -p 8" -cvf file.tar.gz /path/to/directory 

# 接收端 (解压) file.tar.gz表示接收的文件名
tar -xzvf file.tar.gz

2.3 测试ip:port连通性

从发送端设备向目标接收端对应的ip+port发送消息,测试连通性

1
2
3
4
5
# 接受端
nc -l -p <port>

# 发送端
echo "hello" | nc <ip> <port>

2.4 端口扫描

1
2
3
4
5
6
7
8
# 扫描单个端口
nc -zv target_ip 80

# 扫描端口范围
nc -zv target_ip 20-100

# 扫描多个端口
nc -zv target_ip 80 443 8080

2.5 注意事项

  1. 安全性:Netcat 传输不加密,敏感数据需要配合加密工具
  2. 防火墙:确保防火墙开放对应端口

3. 参考链接