亲测基于下面的命令安装两次都成功安装,只要将下面的代码依次复制到命令行中回车运行就行,目前按照的仅供学习交流使用,生产环境请谨慎使用,做好数据加密处理,话不多说直接安排上执行命令
# 更新软件包列表,检查可用的软件包更新sudo apt update# 执行这个命令会自动下载和安装OpenVPN。sudo apt install openvpn# 证书管理工具sudo apt install easy-rsa# 切换目录cd /usr/share/easy-rsa# 初始化,程序将自动创建pki目录,所有生成的文件将存储在该目录中sudo ./easyrsa init-pki# 清理原有证书和私钥并初始化,可选择性使用不执行该条指令sudo ./easyrsa clean-all# 生成自签名的根 CA 证书,用于对 PKI 中的其他证书进行签名# 备注:这里使用nopass参数设置不需要密码,那么在启动OpenVPN服务的时候就不提示输入密码。sudo ./easyrsa build-ca nopass# 生成Diffie-Hellman算法需要的密钥文件,等待一段时间即可生成成功sudo ./easyrsa gen-dh# 为OpenVPN服务端生成证书和私钥,文件名称:server 方法一: sudo ./easyrsa build-server-full server nopass 方法二: sudo ./easyrsa gen-req server nopass ##为服务器证书生成证书签名请求CSR,用于保护服务器的连接。nopass 选项创建一个没有密码的私钥,以方便使用。 sudo ./easyrsa sign-req server server ##使用 CA 证书签名服务器 CSR,并创建服务器证书。# 为OpenVPN客户端证书和私钥:文件名称:user1 方法一: sudo ./easyrsa build-client-full user1 nopass 方法二: sudo ./easyrsa gen-req user1 nopass ##为客户端证书生成证书签名请求CSR,用于保护客户端的连接。nopass 选项创建一个没有密码的私钥,以方便使用。 sudo ./easyrsa sign-req user1 client ##使用CA 证书签名客户端 CSR,并创建客户端证书。# 记住这两个文件: /usr/share/easy-rsa/pki/issued/user1.crt 和 /usr/share/easy-rsa/pki/private/user1.key# 将这些零散的文件集中聚合到 openvpn 目录sudo cp /usr/share/easy-rsa/pki/private/server.key /etc/openvpn/ # 服务端私钥sudo cp /usr/share/easy-rsa/pki/issued/server.crt /etc/openvpn/ # 服务端证书sudo cp /usr/share/easy-rsa/pki/private/user1.key /etc/openvpn/ # 客户端私钥sudo cp /usr/share/easy-rsa/pki/issued/user1.crt /etc/openvpn/ # 客户端证书sudo cp /usr/share/easy-rsa/pki/dh.pem /etc/openvpn/sudo cp /usr/share/easy-rsa/pki/ca.crt /etc/openvpn/# 编辑服务端配置文件sudo nano /etc/openvpn/server.conf
server.conf文件内容如下:
# OpenVPN 服务器配置文件# 指定服务器的协议和端口proto udpport 1194 # 为了安全可以考虑修改一下端口号# 使用 dev tun 作为路由 IP 隧道,或者使用 dev tap 作为以太网隧道dev tun# 证书和密钥配置ca /etc/openvpn/ca.crt # CA 证书路径cert /etc/openvpn/server.crt # 服务器证书路径key /etc/openvpn/server.key # 服务器私钥路径dh /etc/openvpn/dh.pem # Diffie-Hellman 参数文件路径# 启用证书撤销列表 (CRL) 检查(开启可能导致vpn无法连接)# crl-verify /etc/openvpn/crl.pem# OpenVPN 服务器的网络地址,这些地址将会被分配给客户端server 10.255.0.0 255.255.255.0# 推送 DNS 解析器给客户端push "dhcp-option DNS 208.67.222.222"push "dhcp-option DNS 208.67.220.220"# 允许客户端相互通信client-to-client# 配置服务器将所有流量通过 OpenVPN 路由push "redirect-gateway def1 bypass-dhcp"# 在 VPN 连接上启用压缩comp-lzo# 使用合理的加密算法(根据需要调整)cipher AES-256-CBC# 使用 HMAC 认证以提高安全性auth SHA256# 设置最大同时连接的客户端数max-clients 10# 设置日志文件路径status /var/log/openvpn-status.loglog /var/log/openvpn.logverb 3# 指定访问的路由,例如 10.1.1.0/24,推送给用户push "route 10.1.1.0 255.255.255.0"
客户端配置
以Windows11系统为例,下载开源版的OpenVPN客户端,https://openvpn.net/community-downloads/ ,并进行安装。
创建ovpn文件
user1.ovpn文件内容
# OpenVPN 客户端配置文件# 指定使用 OpenVPN 客户端模式client# 使用 tun 设备作为 IP 隧道dev tun# 使用 UDP 协议proto udp# 远程服务器的 IP 地址和端口号,也可以是域名。remote 112.36.56.74 1194# 禁止绑定到特定的本地端口nobind# 保持私钥的持久性persist-key# 保持 IP 隧道的持久性persist-tun# 指定证书颁发机构 (CA) 的证书路径ca ca.crt# 指定客户端证书的路径cert user1.crt# 指定客户端私钥的路径key user1.key# 启用数据压缩comp-lzo# 指定客户端路由,例如 10.1.1.0/24route 10.1.1.0 255.255.255.0# 看情况添加remote-cert-tls server
将user1.ovpn文件放入到C:\Users\\OpenVPN\config
将服务器上如下地址的文件也下载下来,并且放入上面win10系统的目录中:
/etc/openvpn/user1.crt/etc/openvpn/user1.key/etc/openvpn/ca.crt
连接openvpn
打开OpenVPN GUI,左下角托盘,右键连接,成功。
到此连接完成