作为一名网络工程师,我经常被问到如何在虚拟私有服务器(VPS)上安全、高效地搭建一个属于自己的VPN服务,无论是为了绕过地理限制访问内容、保护远程办公数据安全,还是为家庭网络提供加密通道,搭建一个自托管的VPN都是现代数字生活中值得掌握的技能,本文将详细介绍如何在Linux VPS(以Ubuntu为例)上部署OpenVPN,帮助你快速建立一个稳定且可扩展的私有网络隧道。

准备工作必不可少,你需要一台运行Linux系统的VPS(推荐Ubuntu 20.04或22.04 LTS),并确保它拥有公网IP地址,登录VPS后,建议先更新系统包列表并升级所有软件:

sudo apt update && sudo apt upgrade -y

接着安装OpenVPN和Easy-RSA(用于证书管理):

sudo apt install openvpn easy-rsa -y

接下来配置证书颁发机构(CA),使用Easy-RSA生成密钥对和证书签名请求(CSR):

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
sudo cp vars.example vars

编辑 vars 文件,根据需要修改国家、组织名称等字段,然后执行以下命令生成CA密钥:

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

创建服务器证书和密钥:

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

生成客户端证书(每个用户都需要一个独立证书):

./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

复制生成的证书文件到OpenVPN配置目录:

sudo cp pki/ca.crt pki/private/server.key pki/issued/server.crt /etc/openvpn/

接下来配置OpenVPN服务器主文件,创建 /etc/openvpn/server.conf 并添加如下基础配置:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.8.0.0 255.255.255.0
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
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

注意:dh.pem 需要手动生成,可用命令 openvpn --genkey --secret dh.pem 创建。

配置完成后,启动服务并设置开机自启:

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

在防火墙中开放UDP端口1194(若使用UFW):

sudo ufw allow 1194/udp

至此,你的VPS已成功运行OpenVPN服务,客户端可通过导出的证书、密钥和配置文件连接,建议使用OpenVPN GUI(Windows)或OpenVPN Connect(移动设备)导入配置。

小贴士:为增强安全性,建议启用双因素认证(如Google Authenticator)或使用WireGuard替代OpenVPN(性能更优),定期备份证书和日志,监控连接状态,是维护高可用性的关键。

通过以上步骤,你不仅获得了隐私保护的能力,还掌握了构建私有网络的核心技术——这正是现代网络工程师必备的实战能力。

在VPS上搭建VPN,从零开始的私密网络连接指南  第1张

半仙加速器-海外加速器|VPN加速器|vpn翻墙加速器|VPN梯子|VPN外网加速