Shell脚本批量检测IP的443端口联通性

1.  批量检测脚本

#!/bin/bash
# 功能:批量检测IP的443端口连通性
# 输入:ip_list.txt(每行一个IP地址)

# 检查文件是否存在
if [ ! -f "/root/ip_list.txt" ]; then
    echo "错误:未找到IP列表文件 ip_list.txt"
    exit 1
fi

# 结果输出文件
OUTPUT="port_check_result.txt"
echo "IP地址,443端口状态" > $OUTPUT

# 循环处理每个IP
while read -r IP; do
    IP=${IP//[$'\t\r\n']}  # 清除换行符

    # 使用TCP连接检测
    timeout 3 bash -c "echo >/dev/tcp/$IP/443" &>/dev/null

    if [ $? -eq 0 ]; then
        #端口已连通用绿色标识
        echo -e "\e[32m $IP:443 端口已连通\e[0m"
        status="端口已连通"
    else
        #端口不可达用红色标识
        echo -e "\e[31m $IP:443 端口不可达\e[0m"
        status="端口不可达"
    fi

    # 记录结果
    echo "$IP:443,$status" >> $OUTPUT
done < ip_list.txt

echo "检测完成,结果已保存至 $OUTPUT"

使用 timeout 命令避免长时间阻塞(例如设置 3 秒超时)。
语法:timeout <seconds> bash -c 'echo > /dev/tcp/<host>/<port>' &>/dev/null
&>/dev/null:丢弃所有输出,仅通过退出码判断状态。

2. 核心检测机制

  • 使用/dev/tcp虚拟设备进行TCP握手(无需额外工具)
  • timeout 3限制检测时间为3秒(可调整)

---------------------------------------------------------------------------------------------------------------------------------

PS: 字体颜色

字体颜色:30-37

  • 默认=0
  • 黑色=30
  • 红色=31
  • 绿色=32
  • 黄色=33
  • 蓝色=34
  • 紫色=35
  • 天蓝色(青色)=36
  • 白色=37
# echo -e "\e[30m 黑色 \e[0m"
# echo -e "\e[31m 红色 \e[0m"
# echo -e "\e[32m 绿色 \e[0m"
# echo -e "\e[33m 黄色 \e[0m"
# echo -e "\e[34m 蓝色 \e[0m"
# echo -e "\e[35m 紫色 \e[0m"
# echo -e "\e[36m 青色 \e[0m"
# echo -e "\e[37m 白色 \e[0m"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值