使用 NetCat 工具实现远程文件传输

简介: NetCat(NC)是一个通过 TCP/UDP 在网络中进行读写数据工具,主要用于调式领域,传输领域甚至黑客攻击领域。利用 NetCat 工具,可以将网络中的完整数据发送至另一台主机终端显示或存储,常见的应用为文件传输、与好友即时通信、传输流媒体等功能。

使用 NetCat 工具实现远程文件传输



前言


一、NetCat 简介


二、NetCat 命令介绍


1.Linux 上安装 NetCat 工具

2.NetCat 语法

3.NetCat 常见用法

1)简陋版聊天室

2)文件传输


前言



Hello,CSDN 的小伙伴们,大家好,因为这段时间博主工作比较忙,所以博客暂时就耽搁了一段时间,不过后面的话,博主也会抽时间写一些在公司可能会遇到的一些问题,以及一些常用的工具。



一、NetCat 简介



NetCat(NC)是一个通过 TCP/UDP 在网络中进行读写数据工具,主要用于调式领域,传输领域甚至黑客攻击领域。利用 NetCat 工具,可以将网络中的完整数据发送至另一台主机终端显示或存储,常见的应用为文件传输、与好友即时通信、传输流媒体等功能。


NetCat 功能介绍:


  • 可以实现任意 TCP/UDP 端口的侦听,NetCat 工具可以作为 Server 以 TCP 或 UDP 的方式侦听指定端口。
  • 端口扫描,NetCat 工具可以作为 Client 发起 TCP 或 UDP 连接。
  • 主机之间传输文件及网络测试等功能。


二、NetCat 命令介绍



本文主要是针对于文件传输做一个简单的介绍(NetCat 的功能还是很强大的)


1.Linux 上安装 NetCat 工具


yum -y install netcat


2.NetCat 语法


nc [-hlnruz] [-g<网关...>] [-G<指向器数目>] [-i<延迟秒数>] [-o<输出文件>] [-p<通信端口>] [-s<来源地址>] [-v...] [-w<超时秒数>] [主机名称] [通信端口...] 


NetCat 常见参数:


  • -u:使用 UDP 传输协议。
  • -v:显示更多的详细信息。
  • -l:使用监听模式,可以接收对方传送过来的文件等信息。
  • -n:直接使用 IP 地址,而不通过域名服务器(简单来说就是不使用 DNS 解析)
  • -N:在遇到 EOF 时关闭网络连接(多用于文件传输,可以说是文件传输的通知功能)
  • -p <通信端口>:指定本地主机使用的通信端口。
  • -s <来源地址>:指定本地主机送出数据包的 IP 地址。
  • -i <延迟秒数>:指定时间间隔,以便传送信息及扫描通信端口。
  • -o <输出文件>:指定文件名称,把往来传输的数据以 16 进制字码倾倒成该文件保存。


3.NetCat 常见用法


准备两台 Linux 主机:


wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y epel-release mawk mcrypt pv


image.png


注意:这里的 Server 端和 Client 端 并没有直接的区分开,关系可以随时交换,不要潜移默化(受到影响)。


1)简陋版聊天室


Server 端:


[root@Server ~]# mawk -W interactive '$0="Server: "$0' | nc -l 8888


Client 端:


[root@Client ~]# mawk -W interactive '$0="Client: "$0' | nc 192.168.1.1 8888


输出显示:


image.png

image.png


2)文件传输


收取方:


[root@Client ~]# nc -l 8888 > 1.txt


发送方:


[root@Server ~]# echo "Hello World" > 1.txt && nc 192.168.1.2 8888 < 1.txt


image.png


当发送方完成传输后,NetCat 并不会直接退出,而是需要用户手动退出(Ctrl + C)


1)当我们想要实现传输完成后,便自动退出时可以使用 -N 参数:


[root@Client ~]# nc -l 8888 > 2.txt
[root@Server ~]# echo "Hello World" > 2.txt && nc -N 192.168.1.2 8888 < 2.txt


image.png


2)此外,还可以使用 pv 命令来查看文件传输的进度:


  • pv (Pipe Viewer):通过管道显示数据处理进度信息(跟 cp 的区别无非就是 pv 是通过 > 来进行传输)


[root@Server ~]# pv /var/log/messages > ~/messages.txt
 700kiB 0:00:00 [4.33MiB/s] [=================================================>] 100%


使用 pv 结合 NetCat 命令来实现传输进度显示:


[root@Client ~]# nc -l 8888 > ~/messages.txt 
[root@Server ~]# pv /var/log/messages | nc -N 192.168.1.2 8888
 700kiB 0:00:00 [ 189MiB/s] [=================================================>] 100%


image.png


3)当我们想要传输目录时,可以使用 tar 跟 NetCat 配合使用:


[root@Client ~]# nc -l 8888 | tar zxf -
[root@Server ~]# tar czf - zhangsan | pv | nc -N 192.168.1.2 8888


image.png


4)在传输文件时进行加密操作:


[root@Client ~]# nc -l 8888 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb -k 123123 > zhangsan.txt
[root@Server ~]# mcrypt --flush -Fbq -a rijndael-256 -m ecb -k 123123 < /etc/passwd | pv | nc -N 192.168.1.2 8888


  • -k:指定加密时所需要的密码,如果不指定,输入回车时会显示需要输入加密密码。
  • -d:表示接收加密并进行传输。


image.png


本篇文档到这里就要结束了,有什么不懂的,欢迎大家在评论区留言 ~

相关文章
|
存储 数据采集 编译器
STC8系列单片机介绍
STC8系列单片机是中国STC公司生产的一款8位单片机系列产品。作为STC公司的主打产品之一,STC8系列单片机以其高性价比、丰富的外设资源和强大的功能而备受青睐。本文将详细介绍STC8系列单片机的特点、应用领域、开发工具和资源支持等方面。 一、STC8系列单片机的特点 1. 强大的8051内核:STC8系列单片机采用了高性能的8051内核,具有快速的指令执行速度和高效的运算能力。8051内核被广泛应用于嵌入式系统中,具有稳定可靠的特点。 2. 大容量闪存存储器:STC8系列单片机内置大容量的闪存存储器,可存储程序代码和数据。闪存容量从4KB到128KB不等,可以满足不同应用需求。闪存存储
2267 0
|
12月前
|
存储 运维 监控
超越传统模型:从零开始构建高效的日志分析平台——基于Elasticsearch的实战指南
【10月更文挑战第8天】随着互联网应用和微服务架构的普及,系统产生的日志数据量日益增长。有效地收集、存储、检索和分析这些日志对于监控系统健康状态、快速定位问题以及优化性能至关重要。Elasticsearch 作为一种分布式的搜索和分析引擎,以其强大的全文检索能力和实时数据分析能力成为日志处理的理想选择。
720 6
Python实现PowerPoint演示文稿到图片的批量转换
PowerPoint演示文稿作为展示创意、分享知识和表达观点的重要工具,被广泛应用于教育、商务汇报及个人项目展示等领域。然而,面对不同的分享场景与接收者需求,有时需要我们将PPT内容以图片形式保存与传播。 这样能够避免软件兼容性的限制,确保信息接收者无需安装特定软件即可查看内容,还便于在网络社交平台、博客、电子邮件中快速分享与嵌入。而用Python代码可以高效地实现PowerPoint演示文稿到图片的批量转换,从而提升工作效率。
|
12月前
|
前端开发 JavaScript 中间件
七、Flask蓝图使用之七
七、Flask蓝图使用之七
262 0
|
机器学习/深度学习 分布式计算 数据处理
|
12月前
|
存储 Apache 开发工具
apache的主要目录结构及常见的配置选项的详细说明(图例展示)
apache的主要目录结构及常见的配置选项的详细说明(图例展示)
279 1
|
算法 网络安全
Unable to negotiate with 127.0.0.1 port 29215: no matching host key type found. Their offer: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha> 解决
【5月更文挑战第5天】Unable to negotiate with 127.0.0.1 port 29215: no matching host key type found. Their offer: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha> 解决
779 7
|
安全 Shell Linux
如何禁止某个用户使用ssh登录
本文介绍了五种禁止用户通过SSH登录的方法:1) 修改`/etc/ssh/sshd_config`文件中的`DenyUsers`和`DenyGroups`来阻止特定用户或用户组登录;2) 将用户的默认shell设置为`/usr/sbin/nologin`或`/bin/false`以禁用其SSH访问;3) 利用PAM(可插入认证模块)通过编辑`/etc/security/sshd.conf`来限制登录权限;4) 通过编辑`/etc/hosts.deny`文件拒绝特定用户的SSH访问;5) 锁定或禁用用户账号以阻止所有类型的登录。每种方法都提供了详细的步骤指导。
1686 1
|
缓存 前端开发
keep-alive缓存三级及三级以上路由
keep-alive缓存三级及三级以上路由
501 0
|
Linux Windows
qemu-img 转换镜像格式
【1月更文挑战第2天】
980 1