部署服务端容器
创建目录/root/
,在里面添加docker-compose.yml
文件:
version: "3"
services:
open:
container_name: open
image: kylemanna/open:2.4
restart: always
cap_add:
- NET_ADMIN
ports:
- "1194:1194/udp"
volumes:
- ./data/conf:/etc/open
在启动容器前,初始化配置文件和证书:
docker-compose run --rm open o_genconfig -u udp://SERVER_DOMAIN_NAME
docker-compose run --rm open o_initpki
注:SERVER_DOMAIN_NAME
需要替换成实际的域名或者IP。
(可选步骤) 如果有需要的话,修复配置目录的权限:
sudo chown -R $(whoami): ./data/conf
启动容器:
docker-compose up -d open
修改服务端配置
这里仅是我司的修改方式,VPN不用连接外网,仅用于VPN内客户端的互相访问。
修改配置文件./data/conf/open.conf
:
- 可以修改
server
字段,更新服务器提供的私有地址范围。 - 注释掉多余的
route
字段。 - 修改
comp-lzo
为yes
,允许压缩,同样修改push
的信息。 - 去掉
push
的关于DNS的信息,因为本地不需要用VPN做外网连接。 - 添加
client-to-client
,允许端到端发送数据。
在./data/conf/ccd
目录中,对于不同的CLIENT,增加同名文件CLIENT
,内容如下:
ifconfig-push 10.0.0.3 255.255.0.0
用来给不同的CLIENT,分配静态IP。
生成客户端证书
添加新的客户端证书脚本generate.sh
:
#!/bin/bash
docker-compose run --rm open easyrsa build-client-full $1 nopass
docker-compose run --rm open o_getclient $1 > user/$1.o
注销客户端脚本revoke.sh
:
#!/bin/bash
docker-compose run --rm open o_revokeclient $1
rm -f user/$1.o
执行时,可以如下指令:
mkdir user
chmod +x generate.sh revoke.sh
./generate.sh CLIENT104
./revoke.sh CLIENT104