杂记 | CentOS7使用docker部署OpenVPN


01 前置说明

本文的案例基于CentOS7,实测CentOS8是无法成功的,可能需要做一些额外的设置才可以实现,所以建议使用CentOS7作为服务器的操作系统。

02 服务器配置与优化

2.1 设置服务器时区

# 设置服务器时区为上海
timedatectl set-timezone Asia/Shanghai

# 查看系统当前时间
date

2.2 设置BBR加速

以下部分是安装BBR加速

# 1.下载加速脚本
wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh

# 2.进入脚本界面
./tcp.sh  # 输入数字2升级内核

# 3.查看内核版本
uname -srm  # Linux 4.14.129-bbrplus x86_64

# 4.进入脚本界面
./tcp.sh  # 输入数字7开启加速

# 5.进入脚本界面
./tcp.sh  # 输入数字10优化系统设置

03 安装docker

3.1 安装docker(方式一)

本方式要求服务器能访问外网

# 安装
wget -qO- get.docker.com | bash

# 查看docker版本 验证是否安装成功
docker -v

3.2 安装docker(方式二)

推荐使用方式一

# 1.指定阿里云镜像安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 2.查看docker版本 验证是否安装成功
docker -v

# 3.新建配置文件
vim /etc/docker/daemon.json

# 4.在配置文件中设置镜像
{
          
   
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://hub-mirror.c.163.com"
  ]
}

3.3 启动docker

# 启动docker服务
systemctl start docker

# 设置为开机自启
systemctl enable docker

04 安装OpenVPN

服务器安装OpenVPN,使用镜像方式,以下操作在~目录进行

# 1.创建配置文件目录
mkdir -p ~/ovpn-data

# 2.拉取docker镜像 默认为latest
docker pull kylemanna/openvpn

# 3.生成配置文件 xxx.xxx.xxx.xxx那里填写服务器的公网ip
docker run -v ~/ovpn-data:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://xxx.xxx.xxx.xxx

# 4.生成EasyRSA证书 按提示设置CA密码 服务名
docker run -v ~/ovpn-data:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki

# 5.生成客户端证书 CLIENTNAME那里填写证书名称
docker run -v ~/ovpn-data:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full CLIENTNAME nopass

# 6.导出客户端证书 CLIENTNAME填写证书名 导出后得到一个.opvn证书文件 下载到本地
docker run -v ~/ovpn-data:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn

# 7.启动OpenVPN服务 NET_ADMIN是固定写法
docker run -v ~/ovpn-data:/etc/openvpn -d -p 1194:1194/udp --cap-add=NET_ADMIN kylemanna/openvpn

# 8.查看服务是否启动成功
docker ps -a

# 9.查看容器日志
docker logs [ID]

05 防火墙配置

防火墙设置,腾讯云的防火墙默认是关闭的,不需要打开,端口在控制台设置。

# 查看防火墙状态
systemctl status firewalld

# 开启防火墙
systemctl start firewalld

# 放开防火墙1194(udp)端口
firewall-cmd --add-port=1194/udp --zone=public --permanent
firewall-cmd --reload

06 客户端

安卓请前往Googl Play下载OpenVPN客户端 Windows前往官网下载 导入证书文件(.ovpn)即可使用,如果提示compress相关的报错,需要在配置文件中加入一行内容: allow-compression yes 如果能成功使用但一段时间后连接失败(仅提示超时),考虑更改默认的1194端口(证书文件也要改)。

经验分享 程序员 微信小程序 职场和发展