【Linux】之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 nc
nc命令语法格式
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地址端口同意。
[root@localhost 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 8088
2、使用脚本监测判断服务端口是否开放,成功会返回0值显示ok,失败会返回1值显示fail。
借用上面一步的文件,文件内容是自己要监控的ip地址端口。
[root@localhost ncport]# cat nc-ports.sh #/bin/bashcat /data/ncport/ip-ports.txt | while read line;donc -w 10 -z $line > /dev/null 2>&1if [ $? -eq 0 ];thenecho $line:okelseecho $line:failfi
done
3、执行脚本查看运行结果如下:
[root@localhost 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端口不通” mail@139.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
……………………
更改完脚本为:
[root@localhost ncport]# cat nc-ports.sh#/bin/bashmail_ALL=(zhangsan@qq.com,lisi@qq.com,wangwu@qq.com)cat /data/ncport/ip-ports.txt | while read line;donc -w 10 -z $line > /dev/null 2>&1if [ $? -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配置文件中添加执行脚本命令;UserParameter=111,sh /etc/zabbix/zabbix_agentd.d/ncports/111/111.sh’
(3) 脚本及配置添加完成之后访问zabbix页面去添加监控服务,监控项、触发器…
判断脚本如下:
[root@localhost 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"
fi
windows弹窗告警
(1) 先打开接收消息弹窗windows客户机的“Messenger”服务,设置为“启动”
(2) 利用smbclient命令来发送消息,net脚本文件如下:
[root@localhost 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 send
linux邮件告警及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.txt
nc命令目录传输
使用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 指定本地端口,在实际应用中可以省略
相关文章:
【Linux】之nc命令(连接与扫描指定端口、监测服务端口的使用情况)解析、详解实例、邮件告警
🍁博主简介 🏅云计算领域优质创作者 🏅华为云开发者社区专家博主 🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录nc命令简介nc命令的安装nc命令语法格式…...
cdn简单配置
cdn配置域名接入CDN编辑CDN配置本地修改hosts文件,绕过公网解析域名接入CDN 添加CDN域名以及回源配置 编辑CDN配置 默认后端端口是80,如果测试发现无法访问,则可能是443或其它 如果域名在CDN后端有https强制跳转,后端端口一定是44…...
前端安全(自留)
目录XSS——跨站脚本常见解决CSRF ——跨站请求伪造常见解决XSS——跨站脚本 当目标站点在渲染html的过程中,遇到陌生的脚本指令执行。 攻击者通过在网站注入恶意脚本,使之在用户的浏览器上运行,从而盗取用户的信息如 cookie 等。 常见 解…...
零基础转行云计算可行吗
目前处于云年代,云计算运维工程师的工作远景还是十分广泛的。像是阿里云计算,滴滴,抖音等等互联网大厂目前都在使用云核算技能。 云计算运维工程师的薪资水平也十分可观。 运维工程师(Operations),在国内又称为运维开发工程师(Dev…...
【AcWing】蓝桥杯备赛-深度优先搜索-dfs(1)
目录 写在前面: 题目:92. 递归实现指数型枚举 - AcWing题库 读题: 输入格式: 输出格式: 数据范围: 输入样例: 输出样例: 解题思路: 代码: AC &…...
孩子免费就读|私企经理自费赴美国东海岸高校访学
私企U经理无文章无课题,出国访学除了为考察市场、拓宽人脉、提升履资外,另一个主要目的是带孩子在美国接受当地免费的公立中小学教育,并把访学目标学校定位在东海岸。最终其采纳了板凳费相对较低的佐治亚大学邀请函,签证时居然全家…...
前端面试hr经常会问的问题
文章目录前言1.自我介绍2.为什么你要离职?3.工作经历4.职业规划5.优点、缺点6.还有什么要问的总结前言 这里记录了一些面试中hr或者项目负责人经常会问的一些问题,可以提前参考参考,想想该怎么回答,为之后的面试做好准备…...
C动态数组
在实际项目中,我们经常与各式各样的数据打交道。 例如:我们处理的是学生的数据。 struct student {int id; // 学号char name[20]; // 姓名int gender; // 性别int mark; // 成绩 };学生数据使用一个结构体表示,该结构体拥有4个成员。分别为…...
【STL一】STL组件(容器、迭代器、算法)
【STL一】STL组件(容器、迭代器、算法)一、STL二、STL组件(component)1、stl六大组件2、C STL的13个头文件3、stl所有头文件三、容器(container)1、序列容器(Sequence container)——顺序容器2、关联容器&a…...
Java每日一练(20230312)
目录 1. 两数之和 II ★ 2. 反转链表 ★★ 3. 二叉树的层序遍历 II ★★★ 🌟 每日一练刷题专栏 C/C 每日一练 专栏 Python 每日一练 专栏 Java 每日一练 专栏 1. 两数之和 II 给定一个已按照 非递减顺序排列 的整数数组 numbers ,请你从数…...
Linux中sudo,su与su -命令的区别
前言 su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户tom登录的,但要添加用户任务,执行useradd ,tom用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出tom用…...
归并排序有多简单?一幅图教你看懂【C语言】
目录 归并排序的递归实现 代码实现 归并排序的非递归实现 代码实现 归并排序的思想很简单——分治法。简单地说,归并排序的是将序列拆分成几段子序列,将每一段子序列分别进行排序,排好之后再将有序的子序列归并(有点像合并两…...
C++-Z字扫描实现(Zigzag Scan)
Z字扫描(Zigzag Scan) 将二维矩阵压缩成行输出: int index0; for(int i0;i<rowscols-1;i){//i是第几条对角线if(i&1){//odd,向下扫描for(int jmax(0,i-cols1);j<min(i,row-1);j){res[index]mtx[j][i-j];}//}else{//偶数,向上扫描for(int jmi…...
【华为机试真题详解 Python实现】求最大数字【2023 Q1 | 100分】
文章目录 前言题目描述输入描述输出描述示例 1示例 2题目解析参考代码前言 《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议! 本文解法非最优解(即…...
面对数万亿产业规模,如何掘金工业互联网?
近年来,加速工业互联网建设的声音越来越响亮。一方面,政策利好,持续驱动。从2017年的《国务院关于深化“互联网先进制造业” 发展工业互联网的指导意见》到《工业互联网创新发展三年行动计划(2021-2023年)》࿰…...
#ifdefine #define #endif (避免头文件被重复包含的真正含义)
宏定义 首先在谈论正式话题之前,需要先介绍一个基础概念,也是前提,那就是宏定义。 #define demo 1 #define PI 3.14我们都知道这样会将demo 在预处理阶段替换或者说展开为1,Pi 替换为3.14。 #define 宏定义一个标识符来表示一个…...
单片机能运行操作系统吗?
先直接上答案:可以!但是操作系统不是刚需,上操作系统比较占用单片机的资源,比如占用比较多的FLASH和RAM,间接增加了硬件成本,哪怕成本增加1毛钱,对于上量的产品,分分钟是一个工程师的…...
Python之webmagic爬虫优点与使用
一、webmagic的优点它更偏向于java的语法,对于熟悉java的工程师来说学习成本较低。提供多种选择器,如css选择器、xpath、正则等。有一个模块pipeline:可通过简单地配置,可以将爬虫抽取到的信息,持久化到文件、数据库等…...
代码随想录动态规划 || 121 122
Day42121. 买卖股票的最佳时机力扣题目链接给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返…...
C++STL库中不可或缺的部分—string(模拟实现)
前文大家好,本篇文章主要是讲解一下string一些常用接口的模拟实现。众所周知,在日常生活中,字符串无处不在,如just do it,中国,一坤年等,想要在计算机上将这些字符展现出来就需要用到string类,而对我们C程序…...
MySQL复合查询
文章目录基本查询回顾多表查询自连接子查询单行子查询多行子查询多列子查询在from子句中使用子查询合并查询unionunion all基本查询回顾 查询的员工部门表结构: mysql> show tables; ----------------- | Tables_in_scott | ----------------- | dept …...
PCIe 资料收集2
文章目录感官认识PCIe的存储空间PCIe 在 linux 下的驱动PCIe 验证1.PCIe 传递裸数据2.PCIe 转其他设备PCIe转其他总线RS232USB从用户空间理解PCIe感官认识 总线协议接口 视频介绍PCIe 视频介绍及PCIe文字介绍 PCIe上可以接各种控制器硬盘控制器硬盘声卡控制器音响咪头/耳机显…...
Linux网络编程(使用VScode远程登录ubuntu)
文章目录 前言一、SSH插件的安装1.SSH简单介绍2.SSH插件安装和配置步骤二、安装C/C++插件总结前言 本篇文章将带大家进行网络编程的准备工作,使用vscode进行远程登录ubuntu。为什么要使用vscode进行远程登录ubantu呢?因为有些小伙伴的电脑可能性能不够开启虚拟机后会导致电脑…...
如何提高项目估算精准度?关键看5大影响因子
如何让项目估算工作更加精准,我们需要重点关注5大调整因子。 1、功能点调整因子 首先需要对功能点因子进行调整,区分不同类型的系统特征值。 因为不同的系统,对项目开发的影响程度不同,一般我们把系统特征值分为14种类型ÿ…...
论文阅读笔记《Nctr: Neighborhood Consensus Transformer for Feature Matching》
核心思想 本文提出一种融合邻域一致性的Transfomer结构来实现特征点的匹配(NCTR)。整个的实现流程和思想与SuperGlue相似,改进点在于考虑到了邻域一致性。邻域一致性在许多的传统图像匹配和图匹配任务中都有应用,他基于一个很重要…...
上位机系统Ubuntu 20.04与下位机arduino UNO通讯
目录一、安装arduino IDE1.1安装方法1.1.1终端里命令下载(不推荐)1.1.2官网下载(不推荐)1.1.3论坛下载(不推荐)1.1.4系统应用商店(推荐!)1.2配置项目文件位置1.3测试IDE功…...
hive面试题
1、什么是Hive Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(HQL) 2、Hive的意义(最初研发的原因) 避免了去写MapReduce,提供快速开发的…...
【CUDA】《CUDA编程:基础与实践》CUDA加速的关键因素
CUDA事件计时 CUDA提供了一种基于CUDA事件(CUDA event)的计时方式,可用来给一段CUDA代码(可能包含主机代码和设备代码)计时。 对计时器的封装: class CUDATimeCost { public:void start() {elapsed_time_ 0.0;// 初始化cudaEventcheckCudaRuntime(cud…...
数据结构【Golang实现】(四)——双向循环链表
目录0. 定义节点1. IsEmpty()2. Length()3. AddFromHead()4. AddFromTail()5. Insert()6. DeleteHead()7. DeleteTail()8. Remove()9. RemoveByValue()10. Contain()11. Traverse()0. 定义节点 type DLNode struct {Data anyPrev, Next *DLNode }// DoublyLoopLinkedLis…...
【Redis】高可用架构之哨兵模式 - Sentinel
Redis 高可用架构之哨兵模式 - Sentinel1. 前言2. Redis Sentinel 哨兵集群搭建2.1 一主两从2.2 三个哨兵3. Redis Sentinel 原理剖析3.1 什么哨兵模式3.2 哨兵机制的主要任务3.2.1 监控(1)每1s发送一次 PING 命令(2)PING 命令的回…...
宁波网站开发公司电话/电商最好卖的十大产品
二叉树一般都是和递归有联系的,二叉树的遍历包括了前序,后序,中序,大部分题目只要考虑清楚应该用那种遍历顺序,然后特殊情况的条件,题目就会迎刃而解。 1. 先来说说二叉树的遍历方式 其实二叉树的遍历很简…...
淘宝联盟的购物网站怎么做/全国前十名小程序开发公司
文章目录何为Redis什么NoSQL数据库?那什么是非关系型数据库?redist的特点NOSQL和关系型数据库比较非关系型数据库的优势关系型数据库的优势总结命令操作数据结构字符串类型:string哈希类型:hash列表类型: list集合类型: set有序集合类型: sortedset通用命…...
做文化建设的网站/南宁百度快速优化
对于给定的大量APP,如何爬取与之对应的(应用市场)分类、描述的信息?且看下面分解。 1. 页面分析 当我们在豌豆荚首页搜索框输入微信后,会跳转到搜索结果的页面,其url为http://www.wandoujia.com/search?ke…...
dw做网站模板/seo工资
回调函数 如果要处理 $.ajax() 得到的数据,则需要使用回调函数:beforeSend、error、dataFilter、success、complete。 beforeSend在发送请求之前调用,并且传入一个 XMLHttpRequest 作为参数。error在请求出错时调用。传入 XMLHttpRequest 对…...
wordpress ppt预览/兰州seo
1当启动类和controller在同类中时,在该类添加注解Controller即可 2当启动类和controller分开时,启动类要放在项目的根目录下,启动类中添加注解SpringBootApplication, 2当启动类和controller分开时,启动类要放在项目的…...
php做的网站论文/网站推广步骤
为什么80%的码农都做不了架构师?>>> 让树莓派支持uPD161704A和XPT2046芯片的240320触摸屏驱动库 这个C库可以让你的树莓派支持PD161704A和XPT2046芯片. PD161704A是一个240 x 320像素LCD屏幕控制器 , XPT2046是搭配的触摸屏控制器. 这两个控制器常用于低…...