如何在VPS上搭建OpenVPN?_详细步骤与常见问题解决方案

如何在VPS上搭建OpenVPN服务器?

项目 数据
操作系统 Ubuntu 20.04/22.04, CentOS 78, Debian 11
所需工具 OpenVPN, Easy-RSA, iptables
部署时间 约30-60分钟
网络要求 至少1个公网IP,开放1194/UDP端口
客户端支持 Windows, macOS, Linux, Android, iOS

如何在VPS上搭建OpenVPN服务器?

OpenVPN是一种开源的VPN解决方案,能够为您提供安全的网络连接。通过在VPS上搭建OpenVPN服务器,您可以创建自己的私有网络环境,保护网络通信安全。

搭建OpenVPN的主要步骤

步骤 操作内容 预估时间
1 系统准备与更新 5-10分钟
2 安装OpenVPN和Easy-RSA 5-10分钟
3 生成证书和密钥 10-15分钟
4 配置OpenVPN服务器 5-10分钟
5 配置网络和防火墙 5分钟
6 启动OpenVPN服务 2分钟
7 创建客户端配置 5分钟

详细操作流程

步骤1:系统准备与更新

操作说明: 首先需要更新系统软件包并安装必要的依赖工具。 使用工具提示: 使用SSH连接到您的VPS,确保拥有root权限。
# 更新系统软件包
sudo apt update && sudo apt upgrade -y

安装必要的工具

sudo apt install wget curl net-tools -y

步骤2:安装OpenVPN和Easy-RSA

操作说明: 安装OpenVPN服务器和Easy-RSA证书管理工具。 使用工具提示: 使用包管理器安装所需软件。
# 安装OpenVPN和Easy-RSA
sudo apt install openvpn easy-rsa -y

步骤3:生成证书和密钥

操作说明: 设置PKI(公钥基础设施)并生成服务器和客户端证书。 使用工具提示: 在/etc/openvpn目录下设置Easy-RSA。
# 复制Easy-RSA模板
sudo cp -r /usr/share/easy-rsa/ /etc/openvpn/

创建PKI目录

cd /etc/openvpn/easy-rsa sudo ./easyrsa init-pki

构建CA证书

sudo ./easyrsa build-ca nopass

生成服务器证书

sudo ./easyrsa build-server-full server nopass

生成Diffie-Hellman参数

sudo ./easyrsa gen-dh

生成TLS认证密钥

openvpn --genkey --secret pki/ta.key

步骤4:配置OpenVPN服务器

操作说明: 创建并配置OpenVPN服务器配置文件。 使用工具提示: 编辑/etc/openvpn/server.conf文件。
# 创建服务器配置文件
sudo nano /etc/openvpn/server.conf

添加以下配置内容:

port 1194 proto udp dev tun ca /etc/openvpn/easy-rsa/pki/ca.crt cert /etc/openvpn/easy-rsa/pki/issued/server.crt key /etc/openvpn/easy-rsa/pki/private/server.key dh /etc/openvpn/easy-rsa/pki/dh.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist /var/log/openvpn/ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 10 120 tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0 cipher AES-256-CBC user nobody group nogroup persist-key persist-tun status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log verb 3

步骤5:配置网络和防火墙

操作说明: 启用IP转发并配置防火墙规则。 使用工具提示: 修改系统网络参数和iptables规则。
# 启用IP转发
echo 'net.ipv4.ipforward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

配置防火墙(使用ufw)

sudo ufw allow 1194/udp sudo ufw allow OpenSSH

配置NAT规则

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

保存iptables规则(如使用iptables-persistent)

sudo apt install iptables-persistent -y sudo netfilter-persistent save

步骤6:启动OpenVPN服务

操作说明: 启动OpenVPN服务并设置为开机自启。 使用工具提示: 使用systemctl管理OpenVPN服务。
# 启动OpenVPN服务
sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

检查服务状态

sudo systemctl status openvpn@server

步骤7:创建客户端配置

操作说明: 生成客户端证书并创建客户端配置文件。 使用工具提示: 在Easy-RSA目录下操作。
# 生成客户端证书
cd /etc/openvpn/easy-rsa
sudo ./easyrsa build-client-full client1 nopass

创建客户端配置文件目录

sudo mkdir -p /etc/openvpn/client-configs/files

创建客户端配置文件

sudo nano /etc/openvpn/client-configs/client1.ovpn

添加以下内容:

client dev tun proto udp remote YOUR
SERVER_IP 1194 resolv-retry infinite nobind user nobody group nogroup persist-key persist-tun remote-cert-tls server cipher AES-256-CBC verb 3

将ca.crt内容粘贴在这里

将client1.crt内容粘贴在这里

将client1.key内容粘贴在这里

将ta.key内容粘贴在这里

常见问题与解决方案

问题 可能原因 解决方案
客户端无法连接服务器 防火墙阻止了1194端口 检查防火墙设置,确保1194/UDP端口开放
连接成功但无法访问互联网 未正确配置NAT或路由 确认iptables NAT规则正确配置,检查IP转发是否启用
证书验证失败 证书路径错误或权限问题 检查证书文件路径和权限,确保证书文件可读
服务启动失败 配置文件语法错误 检查server.conf文件语法,查看/var/log/openvpn/openvpn.log获取详细错误信息
客户端获取不到IP地址 服务器IP地址池配置错误 检查server配置中的IP地址范围,确认与现有网络不冲突

完成以上步骤后,您的OpenVPN服务器应该已经正常运行。您可以将生成的.ovpn客户端配置文件分发给需要连接的用户,他们使用OpenVPN客户端导入配置文件即可连接到您的VPN服务器。

发表评论

评论列表