本文目录导读:

实用脚本能批量穿透吗?”这个问题,我需要先澄清一下“穿透”的具体含义,根据常见的网络技术语境,这通常指内网穿透(NAT穿透)。
直接回答:是的,实用脚本可以批量进行内网穿透,但前提是你需要有一个支持API(应用程序接口)的穿透服务端。
下面分场景说明:
什么是“批量穿透”?
你可能有多个内网设备(比如家里的NAS、办公室的PC、多台树莓派、摄像头),你想通过一个脚本,让这些设备全部暴露到公网上,并且能通过同一个域名或端口映射访问。
主流批量穿透方案
目前最主流的工具是 frp、ngrok、ZeroTier 等。frp 最适合批量操作,因为它完全开源且支持配置文件生成与API管理。
使用 frp 的配置文件批量生成脚本
如果你有多个客户端,可以用一个脚本自动生成多个 frpc.ini 配置文件,或者通过命令行参数批量启动。
示例脚本(Python/bash):
#!/bin/bash
# 批量启动多个 frp 客户端,每个客户端穿透不同的本地端口
for i in $(seq 1 10); do
# 假设每个客户端对应不同的本地服务端口 8000+i
local_port=$((8000 + i))
remote_port=$((7000 + i))
# 生成临时配置文件
cat > /tmp/frpc_${i}.ini <<EOF
[common]
server_addr = your-frp-server.com
server_port = 7000
[web_${i}]
type = tcp
local_ip = 127.0.0.1
local_port = ${local_port}
remote_port = ${remote_port}
EOF
# 后台启动
nohup ./frpc -c /tmp/frpc_${i}.ini > /tmp/frpc_${i}.log 2>&1 &
done
使用 frp 的 Dashboard + API 动态管理
最新的 frp 版本支持 Dashboard 和 HTTP API,你可以写一个脚本批量调用 API 来创建/删除隧道,而不需要重启进程。
示例(使用curl批量添加隧道):
#!/bin/bash
FRP_API="http://your-frp-server:7400/api"
TOKEN="your_admin_token"
for i in {1..5}; do
local_port=$((8080 + i))
remote_port=$((6000 + i))
curl -X POST "${FRP_API}/config" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d "{
\"name\": \"tunnel_${i}\",
\"type\": \"tcp\",
\"local_port\": ${local_port},
\"remote_port\": ${remote_port}
}"
done
使用 ZeroTier(虚拟组网,非传统穿透)
如果你所谓的“穿透”是指让多台内网设备互相访问,ZeroTier 更适合,它把多台设备加入同一个虚拟局域网后,脚本只需批量调用 zerotier-cli join。
批量加入脚本:
#!/bin/bash
NETWORK_ID="你的网络ID"
for device in $(cat devices.txt); do
ssh user@${device} "sudo zerotier-cli join ${NETWORK_ID}"
done
注意事项(非常重要)
- 服务端带宽瓶颈:如果所有穿透流量都经过同一个服务端,你的公网服务器带宽会成为瓶颈,批量穿透几十个服务时,建议购买高带宽服务器或使用 P2P(点对点)穿透方案。
- 端口冲突:批量穿透时,远程端口不能重复,脚本里需要动态分配或使用
random端口。 - 安全性:批量暴露内网服务到公网后,务必设置强密码、IP白名单或使用 frp 的
allow_ips参数。
如果你说的“穿透”是其他意思?
- 防火墙穿透(翻墙):批量穿透国家防火墙是非法行为,不在此讨论。
- 防火墙规则穿透:如果是批量修改公司内网防火墙规则,脚本可以实现,但需要管理员权限和合规审批。
- 数据穿透(如穿透云盘限速):指突破网盘下载限速,此类脚本通常依赖多线程并发,不是严格意义上的“穿透”。
| 目标 | 推荐工具 | 批量实现难度 | 是否推荐脚本批量 |
|---|---|---|---|
| 多设备暴露到公网 | frp | 中等 | 非常推荐(效率高) |
| 多设备组建私密网络 | ZeroTier / Tailscale | 低 | 推荐(自带API) |
| 单设备多端口穿透 | frp | 低 | 推荐(配置文件循环) |
| 商业/云服务批量穿透 | Ngrok 企业版 API | 高(需付费) | 看预算 |
如果你能更具体地说明“穿透”的对象(穿透公司内网的多台服务器?还是穿透多个家庭的NAS?),我可以给出更精准的脚本示例。