使用ping和telnet测试ip与端口通不通(适合批量测试)

发布于 2025年02月28日

shell脚本如下:

#!/bin/bash

# 定义 IP 和端口列表
ips_and_ports=(
  "10.0.0.1 2000"
  "10.0.0.10 3000"
)

# 遍历 IP 和端口列表
for entry in "${ips_and_ports[@]}"; do
    # 解析 IP 和端口
    ip=$(echo "$entry" | awk '{print $1}')
    port=$(echo "$entry" | awk '{print $2}')

    # 测试 ping 连通性
    if ! ping -c 1 -W 1 "$ip" >/dev/null 2>&1; then
        echo "Ping 到 $ip 失败"
        continue
    fi

    # 测试 telnet 连通性
    if ! timeout 5 bash -c "echo > /dev/tcp/$ip/$port" 2>/dev/null; then
        echo "Telnet 到 $ip:$port 失败"
    fi
done