f
This commit is contained in:
@@ -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 \
|
||||
|
||||
@@ -4,8 +4,9 @@
|
||||
|
||||
| 文件 | 用途 |
|
||||
|------|------|
|
||||
| `Dockerfile` | OpenVPN + microsocks 自建镜像 |
|
||||
| `Dockerfile` | OpenVPN + dante-server(sockd)自建镜像 |
|
||||
| `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` | 上传清单 |
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# OpenVPN 连通后拉起 SOCKS5;仅服务戎行内网代理。
|
||||
# OpenVPN 连通后拉起 SOCKS5(dante/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
|
||||
|
||||
14
deployments/openvpn/sockd.conf.template
Normal file
14
deployments/openvpn/sockd.conf.template
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user