【Linux】 Centos7 nc探测端口命令并实时探测

本文介绍了如何在CentOS 7系统中使用nc工具进行TCP和UDP端口探测,包括安装nc、编写脚本实现每秒自动检测,并利用screen进行后台运行和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. centos7 系统使用nc探测端口

1.1 安装nc工具

yum install nc -y

1.2 端口探测

  • TCP端口探测

使用方法:

nc -w 1   IP地址    端口 < /dev/null && echo "tcp port ok"

举例

对方tcp端口可连接:
# nc  -w 1 192.168.21.17 34567 < /dev/null && echo "tcp port ok"
tcp port ok

对方tcp端口不可连接:
# nc  -w 1 192.168.21.17 34567 < /dev/null && echo "tcp port ok"
Ncat: Connection refused.
  • UDP端口探测

使用方法:

nc -u -w 1  IP地址    端口  < /dev/null && echo "udp port ok"

举例

对方tcp端口可连接:
# nc -u -w 1 192.168.21.17 34567 < /dev/null && echo -e "udp port ok"
udp port ok

二.nc工具实时探测端口

如果我们需要每秒执行一次端口检测,则使用以下方法

2.1 编写shell脚本

# vim /opt/scripts/tcp/detection.sh 
#!/bin/bash

while [ true ]; do
/bin/sleep 1
ttime=`date "+%F %T"`
log=`nc  -w 1 192.168.21.17 34567 < /dev/null && echo -e "\033[32m tcp port ok \033[0m"`
echo "$ttime $log" >> /opt/scripts/tcp/tcp.log
done

2.2 后台运行

  • 后台运行脚本
screen -S nc-tcp /bin/bash /opt/scripts/tcp/detection.sh

注意:如果我们需要退出screen,但保持进程后台运行,需要使用Ctrl键+a+d 进行退出

  • 确认每秒是否执行
# tail -f /opt/scripts/tcp/tcp.log
2021-07-02 14:46:54  tcp port ok 
2021-07-02 14:46:55  tcp port ok 
2021-07-02 14:46:56  tcp port ok 
2021-07-02 14:46:57  tcp port ok 
2021-07-02 14:46:58  tcp port ok 
2021-07-02 14:46:59  tcp port ok 

2.3 screen其它使用

  • 查看当前有哪些后台任务
# screen -ls
There are screens on:
	17829.nc-tcp	(Detached)

联系状态(Attached):有人在操作,只能加入

派遣状态(Detached):后台自动运行,当前无人参与,可以加入、还原

  • 重新进入screen会话
# screen -r nc-tcp
  • 关闭screen会话
快捷键:Ctrl+c

会提示:[screen is terminating],表示已经成功退出screen会话。
### CentOS 上测试网络连通性的命令 在网络管理中,确保系统的网络连接正常是非常重要的。对于CentOS系统而言,有多种方法来验证网络连通性。 #### 使用 `ping` 命令 最常用的工具之一就是`ping`命令,它通过发送ICMP Echo请求到目标设备等待回应来进行工作[^3]。这可以帮助确认两台计算机之间的基本通信能力。例如: ```bash ping www.example.com ``` 此操作将持续向指定的目标域名或IP地址发送数据包直到手动终止(通常按Ctrl+C)。每次成功接收到回复时都会显示一条消息;如果没有得到任何应答,则表明可能存在连接问题。 #### 批量Ping扫描网段内所有主机 为了更高效地了解局域网内的动节点情况,可以通过编写简单的Python脚本来实现批量ping的功能[^1]。下面给出了一段能够依次尝试联系给定范围内各个可能存在的IPv4地址,报告它们的状态(在线还是离线)的代码片段: ```python import subprocess def ping(ip): result = subprocess.run( f"ping -c 2 {ip} >/dev/null", shell=True) status = 'UP' if result.returncode == 0 else 'DOWN' print(f"{ip}:{status}") if __name__ == '__main__': ips = [f"192.168.100.{i}" for i in range(1, 255)] for ip in ips: ping(ip) ``` 这段程序会针对C类子网中的每一个潜在可用地址发起两次探测请求(`-c 2`),将输出重定向至null以减少屏幕上的杂乱信息。最终的结果将以简洁的形式打印出来——每个被测对象后面跟着其当前可达状况。 #### SSH服务连通性检查 除了上述基于ICMP的方法外,在某些情况下还需要检验特定端口的服务是否可访问。比如SSH,默认监听于TCP 22号端口。此时可以借助telnet或者nc(netcat)这类工具完成这项任务[^4]。这里展示如何利用后者进行简单测试: ```bash nc -zv example.com 22 ``` 这条语句试图建立与远端服务器example.com之间的一个临时链接,专门指向ssh守护进程所占用的那个通道。选项-z表示只做扫描而不实际传送资料流;而-v则用来开启详细的日志记录模式以便观察过程细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰哥的技术杂货铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值