实用linux命令-nc
nc传输文件
#发送文件
nc -l 1234 < logstash-7.8.1.rpm
#接受文件
nc 10.10.10.62 1234 > logstash-7.8.1.rpm
#发送文件夹
tar zcvf - test/ | nc 10.10.181.23 1234
#接受文件夹
nc -l 1234 | tar zxvf -
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
nc网络调试工具
nc
(Netcat)不仅可以用于文件传输,还可以在网络调试中发挥重要作用。以下是一些常见的调试用法:
测试端口是否开放
nc -zv 10.10.10.62 80
1说明:
-z
:只扫描端口,不发送数据。-v
:启用详细输出。- 如果端口开放,会显示“成功连接”;如果端口关闭,会显示“连接失败”。
模拟服务器监听端口
nc -l 8080
1说明:
-l
:监听指定端口。- 可以用来模拟一个简单的服务器,接收来自客户端的数据。
发送消息到远程服务器
echo "Hello, Server!" | nc 10.10.10.62 8080
1说明:
echo
命令将消息发送到指定的服务器和端口。- 可用于测试服务器的接收功能。
创建简易聊天服务 在一台机器上运行:
nc -l 12345
1在另一台机器上运行:
nc 10.10.10.62 12345
1说明:
- 两台机器可以通过输入消息进行实时聊天。
nc高级用法
探测开放端口范围
nc -zv 10.10.10.62 20-100
1说明:
- 探测目标机器指定范围内的开放端口。
传输加密数据 使用
openssl
结合nc
实现加密传输:# 发送端 tar zcvf - test/ | openssl enc -aes-256-cbc -salt -out - | nc 10.10.10.62 1234 # 接收端 nc -l 1234 | openssl enc -d -aes-256-cbc -salt -in - | tar zxvf -
1
2
3
4说明:
openssl enc
:使用AES-256加密数据。- 传输过程中保证数据的安全性。
文件传输进度显示 使用
pv
显示传输进度:# 发送端 tar zcvf - test/ | pv | nc 10.10.10.62 1234 # 接收端 nc -l 1234 | pv | tar zxvf -
1
2
3
4说明:
pv
:显示数据流的传输进度。
nc注意事项
安全性
nc
默认不加密数据,传输敏感信息时需结合加密工具(如openssl
)。- 避免在公网环境中直接使用
nc
传输数据。
权限问题
- 使用低端口(如80、443)时可能需要
sudo
权限。
- 使用低端口(如80、443)时可能需要
替代工具
- 如果需要更高级的功能,可以使用
ncat
(nc
的增强版)或其他网络工具如scp
、rsync
。
- 如果需要更高级的功能,可以使用
上次更新: 4/24/2025