This commit is contained in:
2026-07-23 15:22:10 +08:00
parent 1eefe41bac
commit 9ab7ba66f3
4 changed files with 37 additions and 13 deletions

View File

@@ -1,14 +1,17 @@
# 戎行专用OpenVPN 客户端 + SOCKS5仅内网代理,不接管默认路由
FROM alpine:3.21
# 戎行专用OpenVPN 客户端 + Dante SOCKS5仅内网代理
FROM alpine:3.19
RUN apk add --no-cache \
openvpn \
bash \
iproute2 \
microsocks \
curl
# 与业务镜像一致,使用国内 apk 源
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk add --no-cache \
openvpn \
bash \
iproute2 \
dante-server \
curl
COPY entrypoint.sh /entrypoint.sh
COPY sockd.conf.template /etc/sockd.conf.template
RUN chmod +x /entrypoint.sh
ENV VPN_DIR=/vpn \

View File

@@ -4,8 +4,9 @@
| 文件 | 用途 |
|------|------|
| `Dockerfile` | OpenVPN + microsocks 自建镜像 |
| `Dockerfile` | OpenVPN + dante-serversockd自建镜像 |
| `entrypoint.sh` | 启动 VPN仅路由戎行 IP并监听 SOCKS5 `:1080` |
| `sockd.conf.template` | Dante SOCKS 配置模板 |
| `tiany0721.ovpn.example` | ovpn 模板 |
| `docker-compose.rongxing-vpn.snippet.yml` | 独立编排参考prod 已内置) |
| `upload-checklist.txt` | 上传清单 |

View File

@@ -1,5 +1,5 @@
#!/bin/bash
# OpenVPN 连通后拉起 SOCKS5仅服务戎行内网代理。
# OpenVPN 连通后拉起 SOCKS5dante/sockd;仅服务戎行内网代理。
set -euo pipefail
VPN_DIR="${VPN_DIR:-/vpn}"
@@ -48,9 +48,15 @@ for i in $(seq 1 90); do
sleep 1
done
# 前台跑 microsocks进程退出则容器退出同时监控 openvpn
microsocks -i "$SOCKS_HOST" -p "$SOCKS_PORT" &
SOCKS_PID=$!
# 生成 dante 配置并后台启动 sockd
sed "s/__SOCKS_PORT__/${SOCKS_PORT}/g" /etc/sockd.conf.template > /etc/sockd.conf
sockd -f /etc/sockd.conf -D
SOCKS_PID="$(pidof sockd | awk '{print $1}')"
if [ -z "${SOCKS_PID}" ]; then
echo "[rongxing-vpn] sockd 启动失败"
exit 1
fi
echo "[rongxing-vpn] SOCKS5 已监听 :${SOCKS_PORT} (pid=${SOCKS_PID})"
cleanup() {
kill "$SOCKS_PID" 2>/dev/null || true

View File

@@ -0,0 +1,14 @@
# Dante SOCKS5 — entrypoint 会替换 __SOCKS_PORT__
logoutput: stderr
internal: 0.0.0.0 port = __SOCKS_PORT__
external: eth0
socksmethod: none
clientmethod: none
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}