网络工具NetCat简介

NetCat(简称nc)是一个网络工具,用于在计算机网络之间传输数据。它能够创建TCP/UDP连接、监听端口,并支持文件传输等功能。下面是一些常用的Netcat命令和用法。

安装Netcat

在大多数 Linux 发行版中,你可以使用包管理器来安装 Netcat。例如,在 Ubuntu 上,可以使用以下命令:

# 安装Netcat
sudo apt-get update
sudo apt-get install netcat-openbsd  # 或者旧版 netcat-traditional

要查看安装的Netcat版本和路径,可以使用以下命令:

# 查看版本和路径
readlink -f $(which nc)

测试连接

TCP连接

# 测试TCP连接
nc -vz 127.0.0.1 5244

UDP连接

# 测试UDP连接
nc -vz -u 127.0.0.1 5244

超时设置

# 设置超时为3秒
nc -vz -w3 127.0.0.1 8000

范围扫描

# 扫描端口范围
nc -vz -w3 127.0.0.1 8000-8100

运行服务

单次服务

# 启动TCP服务
nc -v -l 8080
# 启动UDP服务
nc -uv -l 8080

持续服务

# 启动持续TCP服务
nc -kv -l 8080

文件传输

从服务端接收文件

# 从服务端接收文件
nc -v -l 8080 > img.jpg

发送文件至服务端(Mac)

# 在Mac上发送文件
nc -v 127.0.0.1 8080 < a.jpg

发送文件至服务端(Linux)

# 在Linux上发送文件
nc -v -N 127.0.0.1 8080 < a.jpg  # -N 传输完成后自动结束服务

测试吞吐量

服务端

# 服务端测试吞吐量
nc -v -l 8080 > /dev/null

搭配pv统计

# 使用pv统计吞吐量
# nc -v -l 8080 | pv

客户端(Mac)

# 在Mac上测试吞吐量
dd if=/dev/zero bs=1M count=100 | nc -n 127.0.0.1 8080

客户端(Linux)

# 在Linux上测试吞吐量
dd if=/dev/zero bs=1M count=100 | nc -n -N 127.0.0.1 8080

远程连接

建立服务管道

# 建立服务管道
mkfifo /tmp/f
cat /tmp/f | /bin/bash 2>&1 | nc -v -l 8080 > /tmp/f

连接远程服务

# 连接远程服务
nc -v 127.0.0.1 8080

删除fifo文件

# 完成后删除fifo文件
rm /tmp/f

以上是一些基本的Netcat使用示例,你可以根据实际需求进行相应的调整和拓展。

References: