在当今远程办公和分布式团队日益普及的背景下,为服务器搭建一个安全、稳定的虚拟私人网络(VPN)已成为企业IT基础设施的重要组成部分,无论是用于远程访问内网资源、保护数据传输安全,还是实现多分支机构互联,正确配置服务器上的VPN服务都至关重要,本文将详细介绍如何在Linux服务器上设置OpenVPN,涵盖环境准备、安装配置、防火墙规则、客户端连接以及安全性增强等关键步骤。

确保你的服务器运行的是主流Linux发行版(如Ubuntu或CentOS),并拥有公网IP地址,建议使用root权限或sudo权限进行操作,第一步是安装OpenVPN及相关工具,以Ubuntu为例,执行以下命令:

sudo apt update && sudo apt install openvpn easy-rsa -y

生成PKI(公钥基础设施)证书和密钥,Easy-RSA是一个用于管理SSL/TLS证书的工具,我们用它来创建CA(证书颁发机构)、服务器证书和客户端证书,运行以下命令初始化证书目录:

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca nopass  # 创建CA,不设置密码
sudo ./easyrsa gen-req server nopass  # 生成服务器证书请求
sudo ./easyrsa sign-req server server  # 签署服务器证书
sudo ./easyrsa gen-req client1 nopass  # 为客户端生成证书请求
sudo ./easyrsa sign-req client client1  # 签署客户端证书

完成证书生成后,复制必要的文件到OpenVPN配置目录:

sudo 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"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

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

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

你需要在服务器防火墙中开放UDP端口1194,若使用UFW,执行:

sudo ufw allow 1194/udp

如果服务器位于NAT之后(例如云服务商的VPS),还需在路由器或云平台中做端口转发。

为客户端准备配置文件,将服务器的ca.crt、client1.crt和client1.key合并成一个.ovpn文件,并上传至客户端设备(Windows、macOS、Android或iOS均可),用户只需导入该文件即可连接到服务器。

为了提升安全性,建议启用TLS认证、定期轮换证书、禁用默认端口、限制客户端IP范围,并结合fail2ban防止暴力破解,可考虑使用WireGuard替代OpenVPN,因其性能更优、配置更简洁,适合现代高并发场景。

通过上述步骤,你可以成功在服务器上部署一个功能完备、安全可靠的VPN服务,满足远程接入与数据加密的核心需求,持续监控日志、更新软件版本和加强访问控制,是保障长期稳定运行的关键。

服务器如何设置VPN,从基础配置到安全优化的完整指南  第1张

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