Spaces:
Paused
Paused
Upload start.sh
Browse files
start.sh
CHANGED
|
@@ -199,31 +199,48 @@ fi
|
|
| 199 |
# 设置 gost 日志级别 (info, warn, error, debug, fatal)
|
| 200 |
# LOG_LEVEL="warn" # 注释掉,因为 gost v2.11.5 不支持 -loglevel
|
| 201 |
|
| 202 |
-
# --- curl 内部测试 ---
|
| 203 |
-
echo "====== 开始内部 Curl 测试 ======"
|
| 204 |
-
INTERNAL_PROXY_URL="
|
| 205 |
TEST_TARGET="https://httpbin.org/ip"
|
| 206 |
echo "测试代理: $INTERNAL_PROXY_URL -> $TEST_TARGET"
|
| 207 |
-
curl
|
|
|
|
| 208 |
if [ $? -eq 0 ]; then
|
| 209 |
-
echo "内部 Curl 测试成功 (
|
| 210 |
else
|
| 211 |
-
echo "内部 Curl 测试失败 (退出码 $?)"
|
| 212 |
fi
|
| 213 |
-
echo "====== 结束内部 Curl 测试 ======"
|
| 214 |
|
| 215 |
# --- 创建健康检查文件 ---
|
|
|
|
| 216 |
mkdir -p /tmp/health
|
| 217 |
echo "OK" > /tmp/health/healthz
|
| 218 |
cd /tmp/health && python3 -m http.server 7862 &
|
| 219 |
HEALTH_PID=$!
|
| 220 |
|
| 221 |
-
# --- 启动gost ---
|
| 222 |
-
echo "启动gost
|
| 223 |
-
/usr/local/bin/gost -L
|
| 224 |
GOST_PID=$!
|
|
|
|
|
|
|
|
|
|
| 225 |
|
| 226 |
-
# ---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 227 |
echo "Starting status page server (port 7861)..."
|
| 228 |
(cd "$HTML_DIR" && python3 -m http.server 7861) &
|
| 229 |
STATUS_PID=$!
|
|
@@ -246,7 +263,7 @@ fi
|
|
| 246 |
|
| 247 |
# --- 运行信息 ---
|
| 248 |
echo "Proxy converter is running..."
|
| 249 |
-
echo "- Main
|
| 250 |
echo "- Status page server running internally at port 7861"
|
| 251 |
echo "- Health check server running internally at port 7862"
|
| 252 |
echo "- Connected to target WebSocket: $TARGET_WSPROXY_URL"
|
|
|
|
| 199 |
# 设置 gost 日志级别 (info, warn, error, debug, fatal)
|
| 200 |
# LOG_LEVEL="warn" # 注释掉,因为 gost v2.11.5 不支持 -loglevel
|
| 201 |
|
| 202 |
+
# --- curl 内部测试 (AFTER gost start,现在测试 SOCKS5) ---
|
| 203 |
+
echo "====== 开始内部 Curl 测试 (Gost将启动为SOCKS5) ======"
|
| 204 |
+
INTERNAL_PROXY_URL="socks5://127.0.0.1:7860" # 使用 SOCKS5
|
| 205 |
TEST_TARGET="https://httpbin.org/ip"
|
| 206 |
echo "测试代理: $INTERNAL_PROXY_URL -> $TEST_TARGET"
|
| 207 |
+
# curl 对 SOCKS5 的支持可能需要 socks5h 以便代理服务器解析域名
|
| 208 |
+
curl -v -k --socks5-hostname "$INTERNAL_PROXY_URL" "$TEST_TARGET" --connect-timeout 15
|
| 209 |
if [ $? -eq 0 ]; then
|
| 210 |
+
echo "内部 Curl 测试成功 (Gost已启动为SOCKS5)"
|
| 211 |
else
|
| 212 |
+
echo "内部 Curl 测试失败 (Gost已启动为SOCKS5) (退出码 $?)"
|
| 213 |
fi
|
| 214 |
+
echo "====== 结束内部 Curl 测试 (Gost已启动为SOCKS5) ======"
|
| 215 |
|
| 216 |
# --- 创建健康检查文件 ---
|
| 217 |
+
# 健康检查服务仍然使用HTTP,因为它只检查端口是否开放
|
| 218 |
mkdir -p /tmp/health
|
| 219 |
echo "OK" > /tmp/health/healthz
|
| 220 |
cd /tmp/health && python3 -m http.server 7862 &
|
| 221 |
HEALTH_PID=$!
|
| 222 |
|
| 223 |
+
# --- 启动gost (改为监听 SOCKS5) ---
|
| 224 |
+
echo "启动gost SOCKS5 代理 (监听 7860,转发到 $TARGET_WSPROXY_URL)..."
|
| 225 |
+
/usr/local/bin/gost -L socks5://:7860 -F "$TARGET_WSPROXY_URL" -D &
|
| 226 |
GOST_PID=$!
|
| 227 |
+
echo "Gost PID: $GOST_PID"
|
| 228 |
+
echo "等待5秒让gost完全启动..."
|
| 229 |
+
sleep 5
|
| 230 |
|
| 231 |
+
# --- curl 内部测试 (AFTER SOCKS5 gost start) ---
|
| 232 |
+
echo "====== 再次运行内部 Curl 测试 (Gost SOCKS5已启动) ======"
|
| 233 |
+
curl -v -k --socks5-hostname "$INTERNAL_PROXY_URL" "$TEST_TARGET" --connect-timeout 15
|
| 234 |
+
if [ $? -eq 0 ]; then
|
| 235 |
+
echo "内部 Curl SOCKS5 测试成功 (Gost已启动)"
|
| 236 |
+
else
|
| 237 |
+
echo "内部 Curl SOCKS5 测试失败 (Gost已启动) (退出码 $?)"
|
| 238 |
+
fi
|
| 239 |
+
echo "====== 结束内部 Curl SOCKS5 测试 (Gost已启动) ======"
|
| 240 |
+
|
| 241 |
+
# --- 启动状态页面服务 (改为监听7861) ---
|
| 242 |
+
# 确保状态页面监听不同端口
|
| 243 |
+
HTML_DIR="/tmp/html"
|
| 244 |
echo "Starting status page server (port 7861)..."
|
| 245 |
(cd "$HTML_DIR" && python3 -m http.server 7861) &
|
| 246 |
STATUS_PID=$!
|
|
|
|
| 263 |
|
| 264 |
# --- 运行信息 ---
|
| 265 |
echo "Proxy converter is running..."
|
| 266 |
+
echo "- Main SOCKS5 proxy listening internally at port 7860"
|
| 267 |
echo "- Status page server running internally at port 7861"
|
| 268 |
echo "- Health check server running internally at port 7862"
|
| 269 |
echo "- Connected to target WebSocket: $TARGET_WSPROXY_URL"
|