03 openvpn
openvpn 解除用户人数限制¶
1、拷贝对应的包出来
$ cp /usr/local/openvpn_as/lib/python/pyovpn-2.0-py3.12.egg /data
$ unzip -q pyovpn-2.0-py3.12.egg
$ cd ./pyovpn/lic/
$ mv uprop.pyc uprop2.pyc
2、编辑一个新的文件 vim uprop.py
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))
3、编译上述的文件
$ python3 -O -m compileall /data/pyovpn/lic/uprop.py
$ zip -rq pyovpn-2.0-py3.12.egg ./pyovpn ./EGG-INFO ./common
4、最后替换pyovpn-2.0-py3.12.egg
mv pyovpn-2.0-py3.12.egg /usr/local/openvpn_as/lib/python/
systemctl restart openvpnas
容器化破解¶
容器化破解Dockerfile 如下,必须使用buildkit 进行编译,步骤可参考: buildkit编译镜像
FROM openvpn/openvpn-as:2.14.3-5936bcd7-Ubuntu24
RUN apt-get update \
&& apt-get install unzip zip
RUN cd /usr/local/openvpn_as/lib/python/ \
&& echo $(ls pyovpn-*) > /tmp/var_cache \
&& unzip $(cat /tmp/var_cache) \
&& mv ./pyovpn/lic/uprop.pyc ./pyovpn/lic/uprop2.pyc
COPY <<EOF /usr/local/openvpn_as/lib/python/pyovpn/lic/uprop.py
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))
EOF
RUN cd /usr/local/openvpn_as/lib/python/ \
&& zip -rq $(cat /tmp/var_cache) ./pyovpn ./EGG-INFO ./common
编译命令为:
$ DOCKER_BUILDKIT=1 docker buildx build -t dockerhub.cmzhu.cn:5000/3rdimages/docker.io/openvpn/openvpn-as:2 --platform linux/amd64 . --push
参考dockerhub 仓库进行手动部署
---
version: "2.1"
services:
openvpn-as:
image: dockerhub.cmzhu.cn:5000/3rdimages/docker.io/openvpn/openvpn-as:2
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:
- <path to data>:/openvpn
restart: unless-stopped