59 lines
1.5 KiB
Bash
59 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
||
# SOCKS5 自动 kill → 测速 → 恢复 一体脚本
|
||
# 适配:x-ui / Xray SOCKS5
|
||
# 目标:杜绝 0 延迟假活
|
||
|
||
### ====== 配置区 ======
|
||
SOCKS_HOST="127.0.0.1"
|
||
SOCKS_PORT=32238
|
||
SOCKS_USER="88888888"
|
||
SOCKS_PASS="88888888"
|
||
TEST_URL="https://ipv6.google.com"
|
||
TIMEOUT=15
|
||
### ====================
|
||
|
||
echo "==============================="
|
||
echo " SOCKS5 自动真实测速开始"
|
||
echo "==============================="
|
||
|
||
echo "[1/5] 清理 SOCKS5 旧会话..."
|
||
ss -K sport = :$SOCKS_PORT >/dev/null 2>&1 || true
|
||
sleep 1
|
||
|
||
echo "[2/5] 等待端口稳定..."
|
||
sleep 2
|
||
|
||
echo "[3/5] 进行真实 SOCKS5 出站测速..."
|
||
START_TIME=$(date +%s%3N)
|
||
|
||
HTTP_CODE=$(curl \
|
||
--socks5-hostname ${SOCKS_USER}:${SOCKS_PASS}@${SOCKS_HOST}:${SOCKS_PORT} \
|
||
--connect-timeout $TIMEOUT \
|
||
--max-time $TIMEOUT \
|
||
-o /tmp/socks5_test.html \
|
||
-s -w "%{http_code}" \
|
||
$TEST_URL)
|
||
|
||
END_TIME=$(date +%s%3N)
|
||
ELAPSED=$((END_TIME - START_TIME))
|
||
|
||
echo "[4/5] 校验测速结果..."
|
||
|
||
if [ "$HTTP_CODE" = "200" ]; then
|
||
echo "--------------------------------"
|
||
echo " SOCKS5 出站:成功"
|
||
echo " HTTP 状态码:$HTTP_CODE"
|
||
echo " 实际耗时 :${ELAPSED} ms"
|
||
echo " 结果 :真实出站(非假活)"
|
||
echo "--------------------------------"
|
||
else
|
||
echo "--------------------------------"
|
||
echo " SOCKS5 出站:失败"
|
||
echo " HTTP 状态码:$HTTP_CODE"
|
||
echo " 结果 :出口异常"
|
||
echo "--------------------------------"
|
||
fi
|
||
|
||
echo "[5/5] 恢复完成(无需人工操作)"
|
||
echo "==============================="
|