本文目录导读:

批量链路”的具体含义,我猜测你可能是在问以下两种常见场景之一:
- 批量创建/测试网络链路(批量建立 SSH/VPN 隧道、批量 ping、批量测试端口连通性)。
- 批量处理“链接”(批量下载文件链接、批量检查网页链接是否失效、批量缩短 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): 脚本能大幅提升效率,无论是下载、检查还是转换。
如何开始使用这些脚本?
- 保存脚本:将以上任一脚本保存为一个
.sh文件(batch_ping.sh)。 - 赋予执行权限:在终端执行
chmod +x batch_ping.sh。 - 准备输入文件:创建一个文本文件,每行包含一个目标(IP、URL 等)。
- 运行脚本:
./batch_ping.sh my_targets.txt。
请告诉我你具体想“批量处理”哪种“链”?
- 是 V2Ray/代理 节点链路?
- 是 数据库连接 链路?
- 还是 区块链 相关的链路?
我可以为你提供更精准、可直接运行的脚本。