Docker部署OpenVPN AS

前言

项目地址:https://openvpn.net/access-server/

备注: 已破解用户限制

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# 执行下面的语句
mkdir -p /apps/openvpn_as/data && cd /apps/openvpn_as && echo 'services:
openvpn-as:
image: crpi-w62qunpjc1e8sbbl.cn-chengdu.personal.cr.aliyuncs.com/lpb_dev/openvpn-as:2.14.1-ff013d4d-Ubuntu22
container_name: openvpn-as
devices:
- /dev/net/tun:/dev/net/tun
cap_add:
- NET_ADMIN
- MKNOD
ports:
- 943:943
- 443:443
- 1194:1194/udp
volumes:
- ./data:/openvpn
restart: unless-stopped
' > docker-compose.yml && echo "from pyovpn.lic import uprop2
old_figure = None

def new_figure(self, licdict):
ret = old_figure(self, licdict)
ret['concurrent_connections'] = 2048
return ret

for x in dir(uprop2):
if x[:2] == '__':
continue
if x == 'UsageProperties':
exec('old_figure = uprop2.UsageProperties.figure')
exec('uprop2.UsageProperties.figure = new_figure')
exec('%s = uprop2.%s' % (x, x))" > data/uprop.py && echo '#!/bin/bash

# 创建工作目录
mkdir ~/crack
cd ~/crack

# 备份并复制文件
cp /usr/local/openvpn_as/lib/python/pyovpn-2.0-py3.10.egg{,.bak}
cp /usr/local/openvpn_as/lib/python/pyovpn-2.0-py3.10.egg .

# 解压缩 .egg 文件
apt install -y unzip zip
unzip -q pyovpn-2.0-py3.10.egg
cd ./pyovpn/lic/
mv uprop.pyc uprop2.pyc

# 进入 lic 目录并处理文件
cp /openvpn/uprop.py ./
python3 -O -m compileall uprop.py && mv __pycache__/uprop.*.pyc uprop.pyc
cd ~/crack/ && zip -rq pyovpn-2.0-py3.10.egg ./pyovpn ./EGG-INFO ./common

# 移动文件到目标位置
mv ./pyovpn-2.0-py3.10.egg /usr/local/openvpn_as/lib/python/pyovpn-2.0-py3.10.egg

# 设置 OpenVPN 用户密码
sacli --user "openvpn" --new_pass "helloWorld++123" SetLocalPassword' > /apps/openvpn_as/data/unlock.sh

# 启动服务
cd /home/openvpn_as && docker-compose up -d && echo 'wait container start......' && sleep 60 && docker exec -it openvpn-as /bin/bash /openvpn/unlock.sh && docker-compose restart

登录OpenVPN AS

客户端文件:https://ip:943/

配置放通网段:https://ip:943/admin

调整配置文件

1
2
3
4
5
6
7
8
9
10
11
12
$ vim profile-userlocked-openvpn.ovpn
...
# 默认不转发
route-nopull
route 网段 子网掩码 vpn_gateway

# 示例
route-nopull
route 172.168.0.0 255.255.255.0 vpn_gateway
...
remote 172.20.0.2 1194 udp #基于容器部署的,修改为公网地址


Docker部署OpenVPN AS
http://example.com/2025/04/25/Docker部署OpenVPN AS/
作者
种田人
发布于
2025年4月25日
许可协议