最近需要用深信服的 aTrust 建立 VPN,众所周知,官方客户端不太安全。在 GitHub 找到一个项目——docker-easyconnect/docker-easyconnect,它能把 aTrust 或 EasyConnect 运行在 Docker(或 Podman)容器里,并为宿主机提供 SOCKS 和 HTTP 代理。
在 192.168.1.118 的机器上执行:
sudo -E docker run -it \
-e ATRUST_OPTS='--portal_address="https://xx.xx.xxx.xxx:3343" --username=中文账号 --password="111111" ' \
--device /dev/net/tun \
--cap-add NET_ADMIN \
-e PASSWORD=111111 \
-e URLWIN=1 \
-e ECPASSWORD=中文账号 \
-v $HOME/.atrust-data:/root \
-p 5901:5901 \
-p 8888:8888 \
--sysctl net.ipv4.conf.default.route_localnet=1 \
--shm-size 256m \
-d kenvix/docker-atrust-autologin:latest
由于 Docker 容器里直接粘贴中文账号显示不正常,通过设置 ECPASSWORD,方便在 VNC 客户端粘贴中文账号。使用 RealVNC Viewer 连接到 192.168.1.118:5901 后,只需手动输入零信任接入地址,这样就不会覆盖剪贴板中已经复制好的中文账号。
容器启动后,打开 Firefox 设置 HTTP 代理为:http://192.168.1.118:8888。
之后在需要访问 VPN 的 Git 仓库目录下执行:
git config --local http.proxy http://192.168.1.118:8888
git config --local https.proxy http://192.168.1.118:8888
这样 Git 拉取和推送就会通过容器内的 VPN 代理走。