营销型网站建设吉林,录入客户信息的软件,一个app的成本,亿码酷网站建设#x1f341;博主简介 #x1f3c5;云计算领域优质创作者 #x1f3c5;华为云开发者社区专家博主 #x1f3c5;阿里云开发者社区专家博主 #x1f48a;交流社区#xff1a;运维交流社区 欢迎大家的加入#xff01; 文章目录nc命令简介nc命令的安装nc命令语法格式… 博主简介 云计算领域优质创作者 华为云开发者社区专家博主 阿里云开发者社区专家博主 交流社区运维交流社区 欢迎大家的加入 文章目录nc命令简介nc命令的安装nc命令语法格式nc命令常用参数参考实例❀为重点解析扫描指定主机的8080端口默认TCP❀扫描指定主机的1-100端口指定为UDP协议扫描等待连线时间为2秒❀扫描指定主机的8088端口并显示执行过程扫描等待连线时间为2秒扫描指定主机的80-85端口并显示执行过程扫描等待连线时间为2秒扫描指定主机的1到65535的端口范围只输出打开的端口去掉-v参数即可❀批量检测服务器指定端口开放情况当端口不通时设置告警Linux邮件告警zabbix告警windows弹窗告警linux邮件告警及zabbix告警的优缺点nc命令文件拷贝nc命令目录传输nc命令在线聊天nc命令简介 nc命令来自于英文词组“Net Cat”的缩写其功能是用于扫描与连接指定端口。nc命令是一个功能丰富的网络实用工具被誉为网络界的瑞士军刀短小精干功能实用。它能够基于命令行在网络上读取和写入数据连接与扫描指定端口号支持TCP和UDP协议为用户提供无限潜在用途。 主要用于扫描与监测指定端口。 nc命令的安装
要有外网yum源
yum -y install ncnc命令语法格式
nc [参数] 域名/IP地址 [端口]nc命令常用参数
-l使用监听模式管控传入的资料-p设置本地主机使用的通信端口-s设置本地主机送出数据包的IP地址-u使用UDP传输协议-v显示指令执行过程-w设置等待连线的时间-z使用0输入/输出模式只在扫描通信端口时使用-n不使用dns反向查询ip地址域名
参考实例❀为重点解析
扫描指定主机的8080端口默认TCP
#扫描指定目标ip和端口
nc -nvv 172.16.11.210 8080#扫描本地8080端口
nc -nvv 127.0.0.1 8080#扫描指定目标IP和端口且输出详细信息
nc -v -z -w2 172.16.11.210 8080❀扫描指定主机的1-100端口指定为UDP协议扫描等待连线时间为2秒
#扫描成功与不成功都不会输出可使用echo $?判断是否成功
nc -u -z -w2 172.16.11.210 1-100❀扫描指定主机的8088端口并显示执行过程扫描等待连线时间为2秒
#加上-v扫描成功与不成功都会输出
nc -v -z -w2 172.16.11.210 8088这是不成功的输出 这是成功输出 扫描指定主机的80-85端口并显示执行过程扫描等待连线时间为2秒
nc -v -z -w2 172.16.11.210 80-85扫描指定主机的1到65535的端口范围只输出打开的端口去掉-v参数即可
nc -z -w2 172.16.11.210 1-65535❀批量检测服务器指定端口开放情况 1、假如我们要监控一堆指定的IP和端口可新建一个文件第1列服务器IP第2列要监控的端口。 要注意写ip和端口的文件中不能有注释不能有空行只能是ip 端口如果后面跟注释会是失败空行也会读取为失败 ip可自行写要监控的ip地址端口同意。 [rootlocalhost ncport]# cat ip-ports.txt172.16.11.210 80
172.16.11.210 6379
172.16.11.210 18000
172.16.11.211 3306
172.16.11.212 10001
172.16.11.209 8099
172.16.11.210 80882、使用脚本监测判断服务端口是否开放成功会返回0值显示ok失败会返回1值显示fail。 借用上面一步的文件文件内容是自己要监控的ip地址端口。
[rootlocalhost ncport]# cat nc-ports.sh #/bin/bashcat /data/ncport/ip-ports.txt | while read line;donc -w 10 -z $line /dev/null 21if [ $? -eq 0 ];thenecho $line:okelseecho $line:failfi
done3、执行脚本查看运行结果如下
[rootlocalhost ncport]# sh nc-ports.sh 172.16.11.210 80:fail
172.16.11.210 6379:fail
172.16.11.210 18000:fail
172.16.11.211 3306:fail
172.16.11.212 10001:fail
172.16.11.209 8099:fail
172.16.11.210 8088:ok当端口不通时设置告警
Linux邮件告警 (1) 先在linux上安装邮件服务比如直接下载emil或者mutt、sendmail这里我安装的是【Linux】部署mailx服务及发送邮件告警 (2) 修改上面的nc-ports.sh检测脚本在显示失败fail的时候增加一行 …………………… echo $line :fail echo “服务器 $line 端口不通请尽快处理” | mail -s “【机房监控】服务器$line端口不通” mail139.com …………………… (3) 如果上面的接收邮箱设置为移动139邮箱并开启接收邮件短信告知即可实现“短信告警”的功能。 (4) 也可以使用qq邮箱来发送告警 (5) 如果是在公司使用要给部门或多个人发送告警的话可以批量发送发件人是在配置邮件服务中设置的。 …………………… 修改上面的nc-ports.sh检测脚本在最上面加一个函数变量 mail_ALL(邮箱1,邮箱2,邮箱3,邮箱4,邮箱5,邮箱6,邮箱7) 修改上面的nc-ports.sh检测脚本在显示失败fail的时候增加一行 echo “服务器 $line 端口不通请尽快处理” | mail -s “【机房监控】服务器$line端口不通” $mail_ALL …………………… 更改完脚本为
[rootlocalhost ncport]# cat nc-ports.sh#/bin/bashmail_ALL(zhangsanqq.com,lisiqq.com,wangwuqq.com)cat /data/ncport/ip-ports.txt | while read line;donc -w 10 -z $line /dev/null 21if [ $? -eq 0 ];thenecho $line:okelseecho $line:failecho 服务器 $line 端口不通请尽快处理 | mail -s 【机房监控】服务器$line端口不通 $mail_ALLfi
done需要定时监控的话可以添加周期性计划任务定时执行一下监测脚本如果有fail就会告警发邮件
zabbix告警 (1) 需要上面两个脚本ip-ports.txt、nc-ports.sh外加一个判断脚本如下一个脚本只能用于监测一个端口 (2) 需要在zabbix-agent配置文件中添加执行脚本命令UserParameter111,sh /etc/zabbix/zabbix_agentd.d/ncports/111/111.sh’ (3) 脚本及配置添加完成之后访问zabbix页面去添加监控服务监控项、触发器… 判断脚本如下:
[rootlocalhost ncport]# cat 111.sh
#!/bin/bash#使用哪个端口写哪个一个脚本只能用于监测一个端口如果监测的ip端口是ok则返回1如果不是ok或者是没有则返回0。
port$(sh /etc/zabbix/zabbix_agentd.d/ncports/nc-ports.sh | grep 172.16.10.111 2222 | awk -F : {print $2})
#echo $portif [ $port ok ];thenecho 1
elseecho 0
fiwindows弹窗告警 (1) 先打开接收消息弹窗windows客户机的“Messenger”服务设置为“启动” (2) 利用smbclient命令来发送消息net脚本文件如下 [rootlocalhost ncport]# cat /scripts/net.sh#!/bin/bash
#/scripts/net.sh
case $1 in
send)
echo $3|smbclient -I $2 -M nmblookup -A $2|sed -e 1d -e 3,/*/d|cut -f2|cut -d -f1
;;
*)
echo Usage:net sendlinux邮件告警及zabbix告警的优缺点 …………………… linux告警优点不用一个一个添加ip端口可以直接去过滤甚至多个ip和端口不通会同一时间去告警 zabbix告警优点可以自己定时去监控如果失败了会告警如果恢复了也会告诉一声到达监控定时的时间如果还是失败则跳过此次告警。 linux告警缺点只会发送告警不会发送恢复告警而且必须手动写周期性计划任务定时监控到时候没有恢复还会继续告警 zabbix告警缺点zabbix告警有些吃力就你需要监控哪个端口必须要一个一个写到监控配置中而且必须要用到调用脚本如果是ok会恢复告警如果是fail会告警但是有时候写错了脚本中没有找到这个ip或者端口或者端口被停止找不到则不反回所以就必须要多加一个脚本。还要在页面添加监控项、触发器… …………………… 推荐使用linux中邮件服务告警然后用zabbix方式来监控邮件服务是否启动。如果zabbix服务和linux邮件服务能互相取长补短就好了。最后根据自己的个人喜好吧来定义用哪个告警方式。 nc命令文件拷贝
很多时候我们都要在两个不同的终端间拷贝文件虽然说有很多种方法例如FTP、Samba、Scp等等但我们仅仅需要一次临时的快捷的连接不仅要安装软件还要进行登录操作如果这样的话那么大部分的时间都会被浪费掉。 假设我们需要传输一个文件bashtest.txt通过主机A发送到主机B。
发送端(A)
nc -l 10000 test.txt-l 监听端口,管控传入的资料
通过nc的-l参数将主机A变为服务器并重定向netcat的输入为文件bashtest.txt也就是我们想要传输的文件那么当任何主机成功连接到该端口netcat就会发送bashtest.txt的文件内容。
接收端(B)
nc -l 172.16.11.210 10000 test.txt-n 不使用dns反向查询ip地址域名
使用nc命令连接主机A的10000端口并将输出重定向到test.txt。这样当主机B连接到主机A时就会接收到A发来的文件内容并保存的文件test.txt 反之也是如此只不过将主机A与主机B的身份进行调换。顺带着输入与输出重定向也要发生改变。
(接收端)A: nc -l 10000 test.txt(发送端)B: nc -n 192.168.78.128 10000 test.txtnc命令目录传输
使用nc传输目录实际上和传输文件手法一样只不过将目录打包为压缩文件再使用nc将压缩文件传输过去客户端接收后将接收到的压缩文件解压。 传输目录为test其下有文件test.txt、test2.txt 由主机A传输到主机B
发送方(A)
tar -zcvf - test | nc -l 10000-z 使用gzip指令处理压缩文件-c 创建新的压缩文件-v 显示指令执行过程即详细模式-f 指定需要压缩的文件即test文件夹
接收方(B)
nc 192.168.78.128 10000 | tar -zxvf --z 使用gzip指令处理压缩文件-x 从压缩文件中解压文件-v 详细模式-f 指定压缩文件
- 代表linux中的标准输出流将压缩后的文件直接输出到netcat中 发送端接收到通过netcat传输来的文件再使用tar指令解压文件 nc命令在线聊天
通过netcat实现在线聊天室也需要C/S结构服务端监听本地端口客户端直接连接到远程服务器端口。
服务端
nc -l -p 10000客户端
nc 192.168.78.128 10000-l 监听模式-p 指定本地端口在实际应用中可以省略