前言
hello,csdn 的小伙伴们,大家好,因为这段时间博主工作比较忙,所以博客暂时就耽搁了一段时间,不过后面的话,博主也会抽时间写一些在公司可能会遇到的一些问题,以及一些常用的工具。
一、netcat 简介
netcat(nc)是一个通过 tcp/udp 在网络中进行读写数据工具,主要用于调式领域,传输领域甚至黑客攻击领域。利用 netcat 工具,可以将网络中的完整数据发送至另一台主机终端显示或存储,常见的应用为文件传输、与好友即时通信、传输流媒体等功能。
netcat 功能介绍:
- 可以实现任意 tcp/udp 端口的侦听,netcat 工具可以作为 server 以 tcp 或 udp 的方式侦听指定端口。
- 端口扫描,netcat 工具可以作为 client 发起 tcp 或 udp 连接。
- 主机之间传输文件及网络测试等功能。
二、netcat 命令介绍
python教程分享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 https://mirrors.aliyun.com/repo/centos-7.repo yum install -y epel-release mawk mcrypt pv
主机名 | 操作系统 | ip 地址 |
---|---|---|
server | centos 7 | 192.168.1.1 |
client | centos 7 | 192.168.1.2 |
注意:这里的 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
输出显示:
2)文件传输
收取方:
[root@client ~]# nc -l 8888 > 1.txt
发送方:
[root@server ~]# echo "hello world" > 1.txt && nc 192.168.1.2 8888 < 1.txt
当发送方完成传输后,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
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%
3)当我们想要传输目录时,可以使用 tar
跟 netcat
配合使用:
[root@client ~]# nc -l 8888 | tar zxf - [root@server ~]# tar czf - zhangsan | pv | nc -n 192.168.1.2 8888
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
:表示接收加密并进行传输。
以上就是netcat工具命令介绍及远程文件传输实现的详细内容,更多关于netcat工具命令远程文件传输的资料请关注<计算机技术网(www.ctvol.com)!!>其它相关文章!
需要了解更多python教程分享NetCat工具命令介绍及远程文件传输实现,都可以关注python教程分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/pythontutorial/1067944.html