在当今远程办公与分布式团队日益普及的背景下,构建一个稳定、安全且易于管理的虚拟私人网络(VPN)服务成为许多企业与个人用户的刚需,Linux因其开源、灵活和高度可定制的特性,成为部署VPN服务器的理想平台,本文将详细介绍如何在Linux系统上使用OpenVPN搭建一个功能完备的VPN服务器,适用于远程访问内网资源、保护数据传输安全等场景。
确保你拥有一个运行Linux的服务器(推荐Ubuntu或CentOS),并具备root权限或sudo权限,我们以Ubuntu 22.04为例进行演示。
第一步:安装OpenVPN及相关工具
通过包管理器安装OpenVPN和Easy-RSA(用于证书生成):
sudo apt update sudo apt install openvpn easy-rsa -y
第二步:配置证书颁发机构(CA)
Easy-RSA提供了一套完整的PKI(公钥基础设施)工具链,初始化证书目录:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa
编辑vars文件,设置国家、组织名等信息(如C=CN, O=MyCompany),然后执行以下命令生成CA密钥对:
./easyrsa init-pki ./easyrsa build-ca
此步骤会生成ca.crt和ca.key,是后续所有客户端和服务端证书的基础。
第三步:生成服务器证书和密钥
./easyrsa gen-req server nopass ./easyrsa sign-req server server
这会生成server.crt和server.key,需复制到OpenVPN配置目录。
第四步:生成Diffie-Hellman参数和TLS密钥
为增强加密强度,生成DH参数(耗时较长,建议提前完成):
./easyrsa gen-dh openvpn --genkey --secret ta.key
第五步:配置OpenVPN服务
创建主配置文件 /etc/openvpn/server.conf如下:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
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
此配置启用UDP协议、TUN模式、自动分配IP地址段(10.8.0.0/24),并推送DNS和路由策略,使客户端流量通过VPN隧道转发。
第六步:启用IP转发与防火墙规则
编辑 /etc/sysctl.conf,取消注释:
net.ipv4.ip_forward=1
应用更改:sysctl -p。
配置iptables规则,允许NAT转发:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE iptables -A INPUT -p udp --dport 1194 -j ACCEPT
若使用UFW,可用ufw allow 1194/udp简化操作。
第七步:启动并测试服务
systemctl enable openvpn@server systemctl start openvpn@server
服务器已就绪,为客户端生成证书:
./easyrsa gen-req client1 nopass ./easyrsa sign-req client client1
将ca.crt、client1.crt、client1.key和ta.key打包发送给客户端,并配置OpenVPN客户端连接参数。
至此,一个基于Linux的OpenVPN服务器已成功部署,支持多用户接入、强加密通信和透明内网访问,相比商业方案,该方法成本低、可控性强,特别适合技术团队自主运维,后续还可结合Fail2Ban防止暴力破解、日志监控提升安全性,真正实现“自己的网络,自己做主”。

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

