随着远程办公、数据加密和隐私保护需求的日益增长,越来越多用户选择在自己的VPS(虚拟专用服务器)上部署私有VPN服务,Ubuntu作为最主流的Linux发行版之一,以其稳定性、开源生态和丰富的社区支持成为搭建VPN的理想平台,本文将详细介绍如何在Ubuntu VPS上使用OpenVPN协议搭建一个安全、稳定且可扩展的个人或团队级VPN服务。

第一步:准备环境
确保你已拥有一个运行Ubuntu 20.04 LTS或更高版本的VPS,并通过SSH登录,建议使用root账户或具有sudo权限的用户执行以下操作,首先更新系统包列表并升级所有软件:

sudo apt update && sudo apt upgrade -y

第二步:安装OpenVPN与Easy-RSA
OpenVPN是业界广泛使用的开源SSL/TLS VPN解决方案,支持多种认证方式,我们先安装核心组件:

sudo apt install openvpn easy-rsa -y

Easy-RSA用于生成证书和密钥,是OpenVPN身份验证的核心工具。

第三步:配置证书颁发机构(CA)
复制Easy-RSA模板到默认路径并初始化PKI:

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa

编辑vars文件,根据需要修改国家、组织等信息(如CN=China, O=MyCompany),然后执行:

./easyrsa init-pki
./easyrsa build-ca nopass

这一步会创建根证书颁发机构(CA),后续所有客户端和服务端证书都将由它签名。

第四步:生成服务器证书和密钥
为OpenVPN服务器生成证书和密钥:

./easyrsa gen-req server nopass
./easyrsa sign-req server server

同时生成Diffie-Hellman参数以增强密钥交换安全性:

./easyrsa gen-dh

第五步:配置OpenVPN服务器
复制示例配置文件并进行关键修改:

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
gunzip /etc/openvpn/server.conf.gz

编辑 /etc/openvpn/server.conf,设置如下重要参数:

  • port 1194:指定端口(可选UDP 1194或TCP 443)
  • proto udp:推荐使用UDP协议提升性能
  • dev tun:创建TUN设备用于点对点隧道
  • ca, cert, key, dh:指向刚刚生成的证书路径
  • server 10.8.0.0 255.255.255.0:分配给客户端的IP段
  • push "redirect-gateway def1 bypass-dhcp":强制客户端流量走VPN
  • push "dhcp-option DNS 8.8.8.8":设置DNS服务器

第六步:启用IP转发与防火墙规则
允许内核转发IPv4数据包:

echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p

配置iptables规则(假设接口为eth0):

iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

第七步:启动服务并测试
启动OpenVPN服务:

systemctl enable openvpn@server
systemctl start openvpn@server

为每个客户端生成证书和配置文件(使用easyrsa gen-req client1 nopasssign-req client client1),导出.ovpn配置文件后即可在Windows、macOS、Android或iOS设备上使用。


在Ubuntu VPS上搭建OpenVPN不仅成本低、灵活性高,而且完全可控,通过上述步骤,你可以获得一个具备加密通信、访问控制、多用户管理能力的私有网络,建议定期更新证书、监控日志、配置Fail2Ban防止暴力破解,从而构建真正安全的远程接入通道。

在Ubuntu VPS上搭建安全可靠的VPN服务,从零开始的完整指南  第1张

VPN加速器|半仙VPN加速器-免费VPN梯子首选半仙VPN