实用脚本能批量链路吗?

wen 实用脚本 17

本文目录导读:

实用脚本能批量链路吗?

  1. 场景一:批量网络链路(连接/隧道/测试)
  2. 场景二:批量处理“链接”(URL/超链接)
  3. 总结:实用脚本能批量链路吗?
  4. 如何开始使用这些脚本?

批量链路”的具体含义,我猜测你可能是在问以下两种常见场景之一:

  1. 批量创建/测试网络链路(批量建立 SSH/VPN 隧道、批量 ping、批量测试端口连通性)。
  2. 批量处理“链接”(批量下载文件链接、批量检查网页链接是否失效、批量缩短 URL)。

为了给你最准确的答案,请允许我展开解释这两种情况,并提供对应的实用脚本思路。


批量网络链路(连接/隧道/测试)

如果你需要批量建立或测试网络层面的连接(如 SSH 隧道、VPN 连接、或简单的网络连通性),脚本是非常实用且必要的。

批量 Ping 测试(最常见) 检查一组 IP 或域名是否在线。

#!/bin/bash
# 文件名: batch_ping.sh
# 用法: ./batch_ping.sh ip_list.txt
INPUT_FILE="$1"
if [ -z "$INPUT_FILE" ]; then
    echo "请提供一个包含 IP 或域名的文件,每行一个。"
    exit 1
fi
while read -r target; do
    # -c 1 表示只 ping 一次,-W 1 表示超时1秒
    if ping -c 1 -W 1 "$target" &> /dev/null; then
        echo "[✓] $target 可达"
    else
        echo "[✗] $target 不可达"
    fi
done < "$INPUT_FILE"

批量建立 SSH 隧道 假设你有一个服务器列表,想为每个服务器建立本地端口转发。

#!/bin/bash
# 文件名: batch_ssh_tunnel.sh
# 格式: user@host port
#  root@192.168.1.1 8080
# 意思是将本地的 8080 端口转发到远程服务器
while IFS=' ' read -r user_host local_port remote_port; do
    echo "正在为 $user_host 建立隧道,本地端口: $local_port"
    # -N 不执行命令,-f 后台运行,-L 本地转发
    ssh -N -f -L "$local_port":localhost:"$remote_port" "$user_host"
    if [ $? -eq 0 ]; then
        echo "[✓] 成功: $user_host"
    else
        echo "[✗] 失败: $user_host"
    fi
done < "ssh_tunnel_list.txt"
# 文件 ssh_tunnel_list.txt 内容示例:
# root@server1.com 8080 80
# admin@10.0.0.5 3306 3306

批量测试 TCP 端口(使用 nc/netcat) 无需 SSH 登录,仅测试端口是否开放。

#!/bin/bash
# 测试目标: 192.168.1.10:22, 192.168.1.10:80, 10.0.0.1:443
while read -r host port; do
    # -z 扫描不发送数据,-w 2 超时2秒
    if nc -z -w 2 "$host" "$port" &> /dev/null; then
        echo "[✓] $host:$port 开放"
    else
        echo "[✗] $host:$port 关闭或超时"
    fi
done < "ports_to_check.txt"
# 文件 ports_to_check.txt 内容:
# 192.168.1.10 22
# 192.168.1.10 80
# google.com 443

批量处理“链接”(URL/超链接)

如果你的意思是批量处理网页链接或文件下载链接,脚本同样非常强大。

批量下载文件 从一个包含下载链接的文本文件中下载所有文件。

#!/bin/bash
# 文件名: batch_download.sh
# 用法: ./batch_download.sh url_list.txt
INPUT_FILE="$1"
if [ -z "$INPUT_FILE" ]; then
    echo "请提供包含下载链接的文件。"
    exit 1
fi
# 创建下载目录
mkdir -p downloads
cd downloads
while read -r url; do
    echo "正在下载: $url"
    # -O 使用远程文件名,--content-disposition 处理重定向后的文件名
    wget -q --show-progress -O "$(basename "$url")" "$url"
    # 或者用 curl: curl -O "$url"
done < "../$INPUT_FILE"
echo "下载完成!"

批量检查网页链接是否有效(检查 HTTP 状态码) 常用于 SEO 或网站维护。

#!/bin/bash
# 文件名: check_links.sh
# 用法: ./check_links.sh links.txt
while read -r url; do
    # 只获取 HTTP 状态码,不下载内容
    status_code=$(curl -o /dev/null -s -w "%{http_code}" --max-time 5 "$url")
    case $status_code in
        200)
            echo "[✓ 200] $url"
            ;;
        301|302)
            echo "[→ $status_code] $url (重定向)"
            ;;
        404)
            echo "[✗ 404] $url (未找到)"
            ;;
        *)
            echo "[? $status_code] $url"
            ;;
    esac
done < "$1"

批量缩短 URL(调用 API) 假设你有很多长链接需要缩短。

#!/bin/bash
# 需要 is.gd 或类似 API 支持,这里以 is.gd 为例
# 用法: ./batch_shorten.sh long_urls.txt
while read -r long_url; do
    # 请求缩短
    short_url=$(curl -s "https://is.gd/create.php?format=simple&url=$long_url")
    echo "$long_url -> $short_url"
done < "$1"

实用脚本能批量链路吗?

答案是:完全可以,而且非常推荐。

  • 对于网络链路(连接/隧道): 脚本几乎是唯一高效的方式,手动配置成千上万条 SSH 隧道或检查端口是不可想象的。
  • 对于文件/网页链接(URL): 脚本能大幅提升效率,无论是下载、检查还是转换。

如何开始使用这些脚本?

  1. 保存脚本:将以上任一脚本保存为一个 .sh 文件(batch_ping.sh)。
  2. 赋予执行权限:在终端执行 chmod +x batch_ping.sh
  3. 准备输入文件:创建一个文本文件,每行包含一个目标(IP、URL 等)。
  4. 运行脚本./batch_ping.sh my_targets.txt

请告诉我你具体想“批量处理”哪种“链”?

  • V2Ray/代理 节点链路?
  • 数据库连接 链路?
  • 还是 区块链 相关的链路?

我可以为你提供更精准、可直接运行的脚本。

抱歉,评论功能暂时关闭!