在Ubuntu系统中配置和部署VPN服务的完整指南(含OpenVPN实战)

dfbn6 2026-05-06 半仙VPN 1 0

在现代网络环境中,虚拟私人网络(VPN)已成为保障数据安全、访问受限资源以及实现远程办公的重要工具,对于Linux爱好者或运维人员来说,Ubuntu作为最受欢迎的开源操作系统之一,提供了强大的网络配置能力,本文将详细介绍如何在Ubuntu服务器或桌面环境中搭建并配置OpenVPN服务,帮助你构建一个稳定、安全且可扩展的私有网络通道。

确保你的Ubuntu系统已更新至最新版本,打开终端,执行以下命令:

sudo apt update && sudo apt upgrade -y

接着安装OpenVPN及相关依赖包:

sudo apt install openvpn easy-rsa -y

easy-rsa 是用于生成SSL/TLS证书和密钥的工具,是建立安全连接的核心组件。

我们需要创建PKI(公钥基础设施),默认情况下,Easy-RSA的配置文件位于 /usr/share/easy-rsa/,我们可以将其复制到自定义目录,/etc/openvpn/easy-rsa

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

编辑 vars 文件以设置证书颁发机构(CA)的相关参数,如国家、组织名称等,建议修改如下字段:

export KEY_COUNTRY="CN"
export KEY_PROVINCE="Beijing"
export KEY_CITY="Beijing"
export KEY_ORG="MyCompany"
export KEY_EMAIL="admin@example.com"

然后初始化PKI环境并生成CA证书:

./clean-all
./build-ca

系统会提示输入CA的Common Name(通常为“CA”),确认后生成根证书(ca.crt)和私钥(ca.key)。

下一步生成服务器证书和密钥:

./build-key-server server

同样,输入Common Name(如server),并选择是否签署证书。

客户端证书的生成方式类似,但需使用 build-key 命令(例如为用户生成 client1 的证书):

./build-key client1

生成Diffie-Hellman参数(用于密钥交换):

./build-dh

我们开始配置OpenVPN服务,创建主配置文件:

sudo cp /etc/openvpn/easy-rsa/keys/{ca.crt,server.crt,server.key,dh2048.pem} /etc/openvpn/
sudo nano /etc/openvpn/server.conf

在配置文件中添加关键选项,

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.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

保存后,启用IP转发功能以允许流量通过服务器路由:

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

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

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

至此,服务器端配置完成,客户端可通过 .ovpn 配置文件连接,该文件需包含服务器地址、CA证书、客户端证书及密钥,推荐使用图形界面工具(如NetworkManager)或命令行工具(如openvpn-client)进行连接。

在Ubuntu上部署OpenVPN不仅简单高效,而且具备高度灵活性,适用于家庭、企业甚至云环境中的安全通信需求,通过本指南,你可以快速掌握从证书生成到服务部署的全流程,构建属于自己的私有网络隧道。

在Ubuntu系统中配置和部署VPN服务的完整指南(含OpenVPN实战)

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