Install ws2tcp-local, add entrypoint script and Claude installation handling
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
606029b332
commit
256672569d
3 files changed
+105
-2
No files matched your search
Executable
+34
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
# Start ws2tcp-local (logging to a file so it does not garble the claude TUI), point the proxy variables at it, then run claude.
|
||||
set -eu
|
||||
|
||||
GATEWAY="wss://wangguofang.net/tunnel"
|
||||
LISTEN_HOST=127.0.0.1
|
||||
LISTEN_PORT=3128
|
||||
LOG_FILE="${WS2TCP_LOCAL_LOG:-/tmp/ws2tcp-local.log}"
|
||||
|
||||
# The credentials come from WS2TCP_LOCAL_BASIC_AUTH (user:pass), set at image build time.
|
||||
ws2tcp-local --gateway "$GATEWAY" --listen "$LISTEN_HOST:$LISTEN_PORT" >"$LOG_FILE" 2>&1 &
|
||||
proxy_pid=$!
|
||||
|
||||
for _ in $(seq 1 50); do
|
||||
if (exec 3<>"/dev/tcp/$LISTEN_HOST/$LISTEN_PORT") 2>/dev/null; then
|
||||
break
|
||||
fi
|
||||
if ! kill -0 "$proxy_pid" 2>/dev/null; then
|
||||
echo "Error: ws2tcp-local exited during startup. Log ($LOG_FILE):" >&2
|
||||
cat "$LOG_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
sleep 0.2
|
||||
done
|
||||
|
||||
export http_proxy="http://$LISTEN_HOST:$LISTEN_PORT"
|
||||
export https_proxy="$http_proxy"
|
||||
export HTTP_PROXY="$http_proxy"
|
||||
export HTTPS_PROXY="$http_proxy"
|
||||
export no_proxy="localhost,127.0.0.1"
|
||||
export NO_PROXY="$no_proxy"
|
||||
|
||||
trap 'kill "$proxy_pid" 2>/dev/null || true' EXIT
|
||||
claude "$@"
|
||||
Reference in new issue
Block a user