Merge pull request #3 from crmmc/main(fix: 修复 WARP 隧道无法正常工作并优化初始化流程)
fix: 修复 WARP 隧道无法正常工作并优化初始化流程
This commit is contained in:
2 files changed
+13
-16
No files matched your search
+1
-4
@@ -16,15 +16,12 @@ FROM alpine:latest
|
||||
# 仅安装必要的内核级 WireGuard 和网络控制工具
|
||||
RUN apk add --no-cache wireguard-tools iptables iproute2 wget curl
|
||||
|
||||
# 把刚才编译好的二进制可执行文件“偷”过来
|
||||
# 打包microsocks
|
||||
COPY --from=builder /src/microsocks /usr/local/bin/microsocks
|
||||
|
||||
WORKDIR /app
|
||||
COPY entrypoint.sh .
|
||||
RUN chmod +x entrypoint.sh
|
||||
|
||||
# 暴露标准 SOCKS5 端口
|
||||
EXPOSE 1080
|
||||
|
||||
# 启动引擎
|
||||
CMD ["./entrypoint.sh"]
|
||||
+12
-12
@@ -9,25 +9,27 @@ mkdir -p /etc/wireguard
|
||||
# ==========================================
|
||||
if [ ! -f "$WG_CONF" ]; then
|
||||
echo "==> [MicroWARP] 未检测到配置,正在全自动初始化 Cloudflare WARP..."
|
||||
|
||||
|
||||
ARCH=$(uname -m)
|
||||
case "$ARCH" in
|
||||
x86_64) WGCF_ARCH="amd64" ;;
|
||||
aarch64) WGCF_ARCH="arm64" ;;
|
||||
*) echo "==> [ERROR] 不支持的架构: $ARCH"; exit 1 ;;
|
||||
esac
|
||||
|
||||
wget -qO wgcf "https://github.com/ViRb3/wgcf/releases/download/v2.2.22/wgcf_2.2.22_linux_${WGCF_ARCH}"
|
||||
|
||||
WGCF_VER=$(curl -sL https://api.github.com/repos/ViRb3/wgcf/releases/latest | grep '"tag_name"' | sed 's/.*"v\(.*\)".*/\1/')
|
||||
echo "==> [MicroWARP] 检测到最新 wgcf 版本: v${WGCF_VER}"
|
||||
wget -qO wgcf "https://github.com/ViRb3/wgcf/releases/download/v${WGCF_VER}/wgcf_${WGCF_VER}_linux_${WGCF_ARCH}"
|
||||
chmod +x wgcf
|
||||
|
||||
|
||||
echo "==> [MicroWARP] 正在向 CF 注册设备..."
|
||||
./wgcf register --accept-tos > /dev/null
|
||||
|
||||
|
||||
echo "==> [MicroWARP] 正在生成 WireGuard 配置文件..."
|
||||
./wgcf generate > /dev/null
|
||||
|
||||
|
||||
mv wgcf-profile.conf "$WG_CONF"
|
||||
|
||||
|
||||
# 【核心安全】阅后即焚:删除注册工具和生成的账号明文文件
|
||||
rm -f wgcf wgcf-account.toml
|
||||
echo "==> [MicroWARP] 节点配置生成成功!"
|
||||
@@ -38,9 +40,7 @@ fi
|
||||
# ==========================================
|
||||
# 2. 强力洗白与内核兼容性处理 (魔改 wg0.conf)
|
||||
# ==========================================
|
||||
# 删除多余的内网 IP 路由和 DNS,让全局流量通过 wg0
|
||||
sed -i 's/^AllowedIPs.*/AllowedIPs = 0.0.0.0\/0/g' "$WG_CONF"
|
||||
sed -i '/Address.*:/d' "$WG_CONF"
|
||||
# 删 DNS 就足够了,删多了跑不了了
|
||||
sed -i '/^DNS.*/d' "$WG_CONF"
|
||||
|
||||
# 删除 Alpine 系统自带 wg-quick 中不兼容的路由标记
|
||||
@@ -67,7 +67,7 @@ wg-quick up wg0 > /dev/null 2>&1
|
||||
|
||||
echo "==> [MicroWARP] 当前出口 IP 已成功变更为:"
|
||||
# 获取最新的 CF 溯源 IP (加入 || true 防止网络波动导致脚本退出)
|
||||
curl -s https://1.1.1.1/cdn-cgi/trace | grep ip= || true
|
||||
(curl -s https://1.1.1.1/cdn-cgi/trace | grep ip= || true) &
|
||||
|
||||
# ==========================================
|
||||
# 4. 启动 C 语言 SOCKS5 代理服务 (带高级参数绑定)
|
||||
@@ -82,7 +82,7 @@ if [ -n "$SOCKS_USER" ] && [ -n "$SOCKS_PASS" ]; then
|
||||
# 使用 exec 接管进程,实现 Zero-Overhead 的底层进程控制
|
||||
exec microsocks -i "$LISTEN_ADDR" -p "$LISTEN_PORT" -u "$SOCKS_USER" -P "$SOCKS_PASS"
|
||||
else
|
||||
echo "==>[MicroWARP] ⚠️ 未设置密码,当前为公开访问模式"
|
||||
echo "==> [MicroWARP] ⚠️ 未设置密码,当前为公开访问模式"
|
||||
echo "==>[MicroWARP] 🚀 MicroSOCKS 引擎已启动,正在监听 ${LISTEN_ADDR}:${LISTEN_PORT}"
|
||||
exec microsocks -i "$LISTEN_ADDR" -p "$LISTEN_PORT"
|
||||
fi
|
||||
Reference in new issue
Block a user