需求场景:
系统集成时,我们经常对应客户的服务需求,在防火墙上开放服务端口,但有时客户软件服务尚未部署,我们如何测试已经开放的外网端口?
场景应用:
使用netcat的nc命令完成这个使命,从而让我们快速完成工作,不用等待软件实施部署好服务后再测试一遍。
#nc -l port_number
保持进程job状态,然后通过外网客户端,telnet测试端口,赶快试试吧,当然如果你能确保防火墙的配置没有问题,则无需此步骤。
应用扩展:
netcat被誉为网络安全界的’瑞士军刀’,简称NC,一个简单而实用的工具,他的强大自然不仅仅是监听任意测试端口那么简单。
netcat透过使用TCP或UDP协议的网络连接去读写数据,是一个稳定而强大的后门工具,同时,它也是一个网络应用Debug分析器,短小而精悍。
netcat分为linux版本和windows版本,其中windows版本这里不做多说,可以自己下载研究一下:windows—NETCAT-32c&64c-v1.12下载地址
现在就一起跟随博主研究总结一下nc命令的强大吧!
基于linux的nc命令:
[root@Moni ~]# type -a nc
nc is /usr/bin/nc
[root@Moni ~]# rpm -qa nc
nc-1.84-22.el6.x86_64
[root@Moni ~]# uname -r
2.6.32-504.el6.x86_64
实例环境:server1:192.168.10.10 && server2:192.168.10.11
功能①:远程拷贝文件
从server1拷贝文件到server2上。需要先在server2上,用nc激活监听,
server2上运行: nc -l 1234 > text.txt
server1上运行: nc 192.168.10.11 1234 < text.txt
※ server2上的监听要先打开用来接受文件的监听端口,然后在server1上执行拷贝命令。
功能②、克隆硬盘或分区
操作与上面的拷贝是雷同的,只需要由dd获得硬盘或分区的数据,然后传输即可。
克隆硬盘或分区的操作,不应在已经mount的的系统上进行,如果不是系统磁盘则可直接克隆即可;
所以,系统磁盘或分区需要使用安装光盘引导后,进入拯救模式(或使用Knoppix工具光盘)启动系统后;
同样在server2上进行类似的监听动作:
nc -l 1234 | dd of=/dev/sdac
server1上执行传输,即可完成从server1克隆sda硬盘到server2的任务:
dd if=/dev/sda | nc192.168.10.11 1234
※ 完成上述工作的前提,是需要落实光盘的拯救模式支持服务器上的网卡,并正确配置IP。
功能③、端口扫描
可以执行:
# nc -v -w 2 192.168.10.11 -z 21-24
nc: connect to 192.168.10.11 port 21 (tcp) failed: Connection refused
Connection to 192.168.10.11 22 port [tcp/ssh] succeeded!
nc: connect to 192.168.10.11 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.10.11 port 24 (tcp) failed: Connection refused
※ -z后面跟的是要扫描的端口
功能④、聊天
nc还可以作为简单的字符下聊天工具使用,同样的,server2上需要启动监听:
server2上启动:# nc -l 1234
server1上传输:# nc 192.168.10.11 1234
※ 这样,双方就可以相互交流了。使用Ctrl+D正常退出。
扩展:linux中的另一个命令可以系统内多终端的单向聊天:“write username pts/0”、可以使用w命令查看当前在线终端。
功能⑤、传输目录
从server1拷贝nginx-0.6.34目录内容到server2上。需要先在server2上,用nc激活监听,
server2上运行:# nc -l 1234 |tar xzvf -
server1上运行:# tar czvf - nginx-0.6.34|nc 192.168.10.11 1234c
功能⑥、用nc命名操作memcached
1)存储数据:printf “set key 0 10 6rnresultrn” |nc 192.168.10.11 11211
2)获取数据:printf “get keyrn” |nc 192.168.10.11 11211
3)删除数据:printf “delete keyrn” |nc 192.168.10.11 11211
4)查看状态:printf “statsrn” |nc 192.168.10.11 11211
5)模拟top命令查看状态:watch “echo stats” |nc 192.168.10.11 11211
6)清空缓存:printf “flush_allrn” |nc 192.168.10.11 11211 (小心操作,清空了缓存就没了)
最后相关案例还可以参考:【wordpress】站点的手动备份、还原、升级
(好的今天就分享到这里,如果您有高见或好的分享,记得留言哦!)