Skip to content

OpenConnect:Docker + SOCKS5 ​

默认的 Cisco 客户端不支持 split tunnel 模式,且与其他 VPN / 代理协作不友好,所以可以用兼容 AnyConnect 协议的 OpenConnect 替代。直接裸机运行的方案可以参考 Mark4551124015/HKU-VPN。

这里提供的是一个 Docker 化的部署方式,映射出一个 1080 端口的 SOCKS5 代理:可以直接把应用指向 socks5://127.0.0.1:1080,或作为其他 VPN 代理链的一环,比如访问 ChatGPT / Claude 等服务。

二选一 ​

脚本代理后端说明
openconnect-setup.shmicrosocks更轻量,只做 SOCKS5
openconnect-gost-setup.shgost更重一些,支持更多协议 / 代理链能力

脚本引用的镜像构建自 ma-wenqian/dockerfiles/openconnect。

一键安装(Linux / macOS) ​

bash
# 更轻量:OpenConnect + microsocks
curl -fsSL https://sh.mawenqian.com/openconnect-setup.sh | bash

# OpenConnect + gost
curl -fsSL https://sh.mawenqian.com/openconnect-gost-setup.sh | bash

每个脚本都会:

  1. 创建安装目录(默认 /opt/openconnect-head 或 /opt/openconnect-gost,可通过 INSTALL_DIR 环境变量覆盖);
  2. 生成一个 .env 模板(VPN 地址 / 账号 / 密码 / TOTP 密钥 + 可选的本地网段路由),并设置权限为 chmod 600;
  3. 写入对应的 Dockerfile 与 docker-compose.yaml,用于构建代理 + OpenConnect 镜像。

启动 ​

bash
cd /opt/openconnect-head   # 或 /opt/openconnect-gost
$EDITOR .env               # 填入真实的 VPN 信息
docker compose up -d --build

容器内置了断线自动重连逻辑(--force-dpd=30 + 重启循环),并配置了健康检查(通过隧道 ping 1.1.1.1)。

让局域网其他设备也能用 ​

如果希望局域网内的其他设备也能访问这个代理(而不仅仅是运行 Docker 的这台机器),在 .env 中设置 LOCAL_NETWORK / LOCAL_GATEWAY;如果只在本机使用,保持默认即可。