在当今数字化时代,虚拟专用网络(VPN)已成为保障网络安全、隐私保护和远程访问的重要工具,尤其是对于拥有VPS(虚拟私有服务器)的用户而言,自行搭建一个稳定、安全的本地VPN服务不仅成本低廉,还能根据自身需求灵活定制,本文将详细介绍如何在Ubuntu操作系统环境下,使用OpenVPN这一开源且广泛使用的协议,在VPS上搭建一套完整的个人或企业级VPN服务。

确保你已经拥有一台运行Ubuntu系统的VPS(推荐Ubuntu 20.04 LTS或22.04 LTS版本),并具备root权限或sudo权限,登录到你的VPS后,第一步是更新系统包列表并安装必要的依赖:

sudo apt update && sudo apt upgrade -y

安装OpenVPN及相关工具(如easy-rsa用于证书管理):

sudo apt install openvpn easy-rsa -y

配置证书颁发机构(CA)——这是OpenVPN身份验证的核心,进入easy-rsa目录并初始化PKI环境:

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

编辑vars文件,设置你的国家、组织名称等基本信息(如CN=YourOrganization, C=CN, ST=Beijing等),然后执行以下命令生成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配置目录:

cp pki/ca.crt pki/issued/server.crt pki/private/server.key /etc/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
cipher AES-256-CBC
auth SHA256
tls-auth ta.key 0
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

注意:你需要先生成ta.key文件:

openvpn --genkey --secret ta.key

配置完成后,启用IP转发功能以允许流量通过VPS路由:

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

启动OpenVPN服务并设置开机自启:

systemctl enable openvpn@server
systemctl start openvpn@server

你可以在本地设备上使用OpenVPN客户端导入client1的证书和配置文件(需将ca.crt、client1.crt、client1.key和ta.key合并为一个.ovpn文件),即可连接到你的VPS上的VPN服务。

通过以上步骤,你已成功在Ubuntu VPS上部署了一个功能完备、安全性高的OpenVPN服务,这不仅提升了远程办公的安全性,还为你提供了对互联网流量的完全控制权,是网络工程师值得掌握的实用技能。

在Ubuntu系统上搭建VPS的VPN服务,从零开始的完整指南  第1张

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