clash-linux commited on
Commit
e690ae4
·
verified ·
1 Parent(s): 7ce90de

Upload 4 files

Browse files
Files changed (1) hide show
  1. start.sh +22 -31
start.sh CHANGED
@@ -1,5 +1,8 @@
1
  #!/bin/bash
2
 
 
 
 
3
  # 添加诊断函数
4
  check_target_server() {
5
  local url="$1"
@@ -196,30 +199,29 @@ fi
196
  # 设置 gost 日志级别 (info, warn, error, debug, fatal)
197
  # LOG_LEVEL="warn" # 注释掉,因为 gost v2.11.5 不支持 -loglevel
198
 
199
- # --- 启动主代理服务 ---
200
- echo "Starting gost HTTP proxy (port 7860)..."
201
- # 确保 -F 参数包含完整的转发规则,不只是 URL
202
- # 例如:gost -L "http://:7860" -F="ws://server"
203
- echo "Debug: Final target URL = $TARGET_WSPROXY_URL"
204
-
205
- # 构建正确的转发字符串
206
- if [[ "$TARGET_WSPROXY_URL" == wss://* ]]; then
207
- # 已经有 wss:// 前缀
208
- FORWARD_RULE="$TARGET_WSPROXY_URL"
209
- elif [[ "$TARGET_WSPROXY_URL" == ws://* ]]; then
210
- # 已经有 ws:// 前缀
211
- FORWARD_RULE="$TARGET_WSPROXY_URL"
212
  else
213
- # 添加默认的 wss:// 前缀
214
- FORWARD_RULE="wss://$TARGET_WSPROXY_URL"
215
  fi
 
216
 
217
- echo "Debug: Final forward rule = $FORWARD_RULE"
 
 
 
 
218
 
219
- # 运行 gost 服务
220
- gost -L "http://:7860" -F="$FORWARD_RULE" -D &
 
221
  GOST_PID=$!
222
- sleep 1
223
 
224
  # --- 启动状态页面服务 ---
225
  echo "Starting status page server (port 7861)..."
@@ -227,17 +229,6 @@ echo "Starting status page server (port 7861)..."
227
  STATUS_PID=$!
228
  sleep 1
229
 
230
- # --- 启动健康检查服务 ---
231
- HEALTH_CHECK_PORT=7862
232
- echo "Starting health check server (port $HEALTH_CHECK_PORT)..."
233
- # 创建一个简单的健康检查响应目录和文件
234
- HEALTH_CHECK_DIR="/tmp/health"
235
- mkdir -p "$HEALTH_CHECK_DIR"
236
- echo "OK" > "$HEALTH_CHECK_DIR/healthz"
237
- (cd "$HEALTH_CHECK_DIR" && python3 -m http.server $HEALTH_CHECK_PORT) &
238
- HEALTH_PID=$!
239
- sleep 1
240
-
241
  # --- 进程检查 ---
242
  echo "Checking if gost process (PID: $GOST_PID) started..."
243
  if ! kill -0 $GOST_PID > /dev/null 2>&1; then
@@ -257,7 +248,7 @@ fi
257
  echo "Proxy converter is running..."
258
  echo "- Main HTTP proxy listening internally at port 7860"
259
  echo "- Status page server running internally at port 7861"
260
- echo "- Health check server running internally at port $HEALTH_CHECK_PORT"
261
  echo "- Connected to target WebSocket: $TARGET_WSPROXY_URL"
262
 
263
  # --- 信号处理与等待 ---
 
1
  #!/bin/bash
2
 
3
+ # 调试模式
4
+ set -x
5
+
6
  # 添加诊断函数
7
  check_target_server() {
8
  local url="$1"
 
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="http://localhost:7860"
205
+ TEST_TARGET="https://httpbin.org/ip"
206
+ echo "测试代理: $INTERNAL_PROXY_URL -> $TEST_TARGET"
207
+ curl -v -x "$INTERNAL_PROXY_URL" "$TEST_TARGET" --connect-timeout 15
208
+ if [ $? -eq 0 ]; then
209
+ echo "内部 Curl 测试成功 (退出码 0)"
 
 
 
 
 
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 HTTP代理..."
223
+ /usr/local/bin/gost -L http://:7860 -F "$TARGET_WSPROXY_URL" -D &
224
  GOST_PID=$!
 
225
 
226
  # --- 启动状态页面服务 ---
227
  echo "Starting status page server (port 7861)..."
 
229
  STATUS_PID=$!
230
  sleep 1
231
 
 
 
 
 
 
 
 
 
 
 
 
232
  # --- 进程检查 ---
233
  echo "Checking if gost process (PID: $GOST_PID) started..."
234
  if ! kill -0 $GOST_PID > /dev/null 2>&1; then
 
248
  echo "Proxy converter is running..."
249
  echo "- Main HTTP proxy listening internally at port 7860"
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"
253
 
254
  # --- 信号处理与等待 ---