在当今远程办公和跨地域协作日益普遍的背景下,构建一个稳定、安全且易于管理的虚拟私人网络(VPN)服务器变得尤为重要,Ubuntu作为一款广受欢迎的Linux发行版,凭借其开源特性、强大的社区支持以及良好的兼容性,成为搭建VPN服务器的理想选择,本文将详细介绍如何在Ubuntu系统上配置OpenVPN服务,实现安全可靠的远程访问。

确保你有一台运行Ubuntu Server 20.04或更高版本的服务器(推荐使用LTS版本),并具备静态IP地址和公网域名(可选但建议),登录服务器后,执行以下步骤:

第一步:更新系统与安装依赖
打开终端,运行以下命令同步软件源并升级系统:

sudo apt update && sudo apt upgrade -y

接着安装OpenVPN及其相关工具:

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=YourCompany, C=CN, ST=Beijing等),然后执行:

./clean-all
./build-ca

这将创建根证书(ca.crt),它是所有客户端和服务器证书的信任基础。

第三步:生成服务器证书与密钥
继续执行:

./build-key-server server

此命令会生成服务器证书(server.crt)、私钥(server.key)及Diffie-Hellman参数(dh.pem),这些文件是服务器身份验证和加密通信的关键。

第四步:配置OpenVPN服务端
复制示例配置文件到/etc/openvpn目录下:

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

编辑该文件,关键配置包括:

  • port 1194:指定监听端口(建议改为非默认端口以减少扫描攻击)
  • proto udp:使用UDP协议提高性能
  • dev tun:创建TUN设备,提供点对点隧道
  • ca ca.crtcert server.crtkey server.key:引用之前生成的证书文件
  • dh dh.pem:引入Diffie-Hellman参数
  • server 10.8.0.0 255.255.255.0:分配给客户端的IP段
  • push "redirect-gateway def1 bypass-dhcp":强制客户端流量通过VPN路由
  • keepalive 10 120:心跳检测机制
  • cipher AES-256-CBC:加密算法选择(更推荐使用AES-256-GCM)

第五步:启动并启用服务
保存配置后,启动OpenVPN服务:

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

第六步:防火墙与NAT配置
若服务器位于公网,需开放UDP 1194端口(例如用ufw):

sudo ufw allow 1194/udp

同时启用IP转发和NAT规则,使客户端能访问外网:

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

为每个客户端生成唯一证书和配置文件(使用build-key client1),并将客户端配置文件(client.ovpn)分发至用户设备,连接时只需导入配置即可。

至此,一个基于Ubuntu的OpenVPN服务器已成功部署,既满足企业级安全性要求,又具备良好扩展性与维护性,对于高级需求(如双因素认证、负载均衡或集成LDAP),还可进一步优化架构。

Ubuntu系统搭建高效安全的VPN服务器完整指南  第1张

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