2021-03-07 分类: 网站建设
1. nc命令简介
NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。
netcat简介
以CentOS7.5最小安装版为例,默认情况下系统并没有集成nc工具集,需要手动安装它:
- [root@zcwyou ~]# yum install -y nmap-ncat
2. 测试192.168.1.1的TCP80端口是否可以正常连接
- [root@zcwyou ~]# nc -v -w 1 192.168.1.1 -z 80
linux使用netcat命令检测TCP80端口是否可以正常连接
试试连接81端口
- [root@zcwyou ~]# nc -v -w 1 192.168.1.1 -z 81
3. 使用nc传输文件
大部分时间中,我们都在试图通过网络或者其他工具传输文件。有很多种方法,比如FTP,SCP,SMB等等,但是当你只是需要临时或者一次传输文件,真的值得浪费时间来安装配置一个软件到你的机器上嘛。假设,你想要传一个文件zcwyou.txt 从A到B。A或者B都可以作为服务器或者客户端,以下,让A作为服务器,B为客户端。
Server端配置
- [root@zcwyou ~]# nc -l 1567
< zcwyou.txt zcwyou.txt <>
Client
- [root@zcwyou ~]# nc -n 172.31.100.7 1567 > zcwyou.txt
原理:Server端把zcwyou.txt输入到nc,由nc发送,Client端通过nc接收消息,把它保存到zcwyou.txt。
4. 克隆硬盘或分区
server2上进行类似的监听动作,即把接收的数据重定向给dd:
- [root@zcwyou ~]# nc -l -p 1234 | dd of=/dev/sda
server1上把dd后的数据重定向给nc,即发送数据
- [root@zcwyou ~]# dd if=/dev/sda | nc 192.168.200.27 1234
注意:克隆硬盘或分区的操作,不应在已经mount的的系统上进行。
5. 指定源端口
假设你的防火墙过滤除25端口外其它所有端口,你需要使用-p选项指定源端口。
服务器端打开监听:
- [root@zcwyou ~]# nc -l 1567
客户端发送数据,目标端口1567,源端口25
- [root@zcwyou ~]# nc 172.31.100.7 1567 -p 25
使用1024以内的端口需要root权限。
该命令将在客户端开启25端口用于通讯,否则将使用随机端口。
6. 指定源地址
使用-s选项指定源ip地址。
服务器端打开监听,把zcwyou.txt重定向给nc。
- [root@zcwyou ~]# nc -u -l 1567
< zcwyou.txt zcwyou.txt <>
客户端
- [root@zcwyou ~]# nc -u 192.168.100.1 1567 -s 192.168.88.20 > file.txt
当服务器有多个IP时,指定使用192.168.88.20作为源IP。
7. 目录传输
发送一个文件很简单,但是如果我们想要发送多个文件,或者整个目录,一样很简单,只需要使用压缩工具tar,压缩后发送压缩包。
如果你想要通过网络传输一个目录从A到B。
Server端,打包abc目录,并重定向到nc
- [root@zcwyou ~]# tar -cvf - abc | nc -l 1567
Client端,通过nc接收数据并由tar解包
- [root@zcwyou ~]# nc -n 172.31.100.7 1567 | tar -xvf -
如果想要节省带宽传输压缩包,我们可以使用bzip2或者其他工具压缩。
Server端通过bzip2压缩目录abc并重定向到nc,监听端口1567
- [root@zcwyou ~]# tar -cvf - abc | bzip2 -z | nc -l 1567
Client端把接收到的数据通过交给bzip2和tar处理
- [root@zcwyou ~]# nc -n 172.16.26.88 1567 | bzip2 -d |tar -xvf -
8. 加密你通过网络发送的数据
如果你担心你在网络上发送数据的安全,你可以在发送你的数据之前用如mcrypt的工具加密。
服务端,使用mcrypt工具加密数据。
- [root@zcwyou ~]# nc localhost 1567 | mcrypt –flush –bare -F -q -d -m ecb > zcwyou.txt
客户端,使用mcrypt工具解密数据。
- mcrypt -flush -bare -F -q -m ecb
< zcwyou.txt | nc -l 1567 zcwyou.txt | nc -l 1567 <>
以上两个命令会提示需要密码,确保两端使用相同的密码。
这里我们是使用mcrypt用来加密,使用其它任意加密工具都可以。
9. 传输流视频
虽然不是生成流视频的最好方法,但如果服务器上没有特定的工具,使用netcat,我们仍然有希望做成这件事。
服务端读取一个视频文件重定向输出到netcat客户端
- [root@zcwyou ~]# cat video.avi | nc -l 1567
客户端通过nc读取内容交给mplayer播放器
- [root@zcwyou ~]# nc 172.31.100.7 1567 | mplayer -vo x11 -cache 3000 -
10. 使用UDP协议
默认情况下,nc创建连接时只会连接TCP端口。 不过我们可以使用-u选项来连接到 UDP 端口
- [root@zcwyou ~]# ncat -l -u 8888
udp 8888端口已经打开,然后用netstat验证一下端口是否打开。
- [root@zcwyou ~]# netstat -tunlp | grep 1234
udp 0 0 0.0.0.0:1234 0.0.0.0:* 17341/nc
udp6 0 0 :::1234 :::* 17341/nc
测试某服务器的UDP端口,比如检查本地是否可以使用阿里DNS服务器223.5.5.5
- [root@zcwyou ~]# nc -v -u 223.5.5.5 53
Ncat: Version 7.50
Ncat: Connected to 223.5.5.5:53.
显示Connected即表明成功连接到远程DNS端口,DNS工作正常。
linux使用netcat测试服务器的UDP端口
11. 其它用途
使用-t选项模拟Telnet客户端:
HTTP客户端用于下载文件
连接到邮件服务器,使用SMTP协议检查邮件
使用ffmpeg截取屏幕并通过流式传输分享,等等。其它更多用途。
简单来说,只要你了解协议就可以使用netcat作为网络通讯媒介,实现各种客户端。
分享文章:Linux里有类似Windows系统里的Tcping端口连接检测工具吗
当前地址:https://www.cdcxhl.com/news15/104765.html
成都网站建设公司_创新互联,为您提供域名注册、手机网站建设、全网营销推广、网站制作、网站设计公司、品牌网站设计
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联
猜你还喜欢下面的内容