实战指南,如何在Linux服务器上配置OpenVPN实现安全远程访问

admin11 2026-02-04 vpn下载 2 0

作为一名网络工程师,在企业或个人项目中,常常需要为远程办公人员或分支机构提供安全、稳定的网络连接,虚拟私人网络(VPN)正是解决这一需求的核心技术之一,本文将以Linux系统为例,详细讲解如何部署和配置OpenVPN服务,帮助用户实现加密通道下的远程访问,确保数据传输的安全性与隐私性。

我们需要明确环境准备,假设你有一台运行Ubuntu 22.04 LTS的服务器,具备公网IP地址,并已安装基本的防火墙工具(如ufw),我们使用OpenVPN作为开源解决方案,它支持多种加密协议(如TLS/SSL),兼容性强且社区活跃,非常适合中小型部署场景。

第一步:安装OpenVPN及相关工具
通过终端执行以下命令更新系统并安装OpenVPN:

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

easy-rsa是用于生成证书和密钥的工具包,是OpenVPN认证体系的基础。

第二步:配置证书颁发机构(CA)
进入EasyRSA目录并初始化PKI(公钥基础设施):

cd /usr/share/easy-rsa/
sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/
cd /etc/openvpn/
sudo mkdir keys
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca nopass

此步骤会生成一个自签名的根证书(ca.crt),用于后续所有客户端和服务端证书的验证。

第三步:生成服务器证书和密钥

sudo ./easyrsa gen-req server nopass
sudo ./easyrsa sign-req server server

这将生成server.crt和server.key,分别代表服务器的身份凭证和私钥。

第四步:生成Diffie-Hellman参数(提升加密强度)

sudo ./easyrsa gen-dh

该过程可能需要几分钟,完成后生成dh.pem文件。

第五步:创建OpenVPN服务配置文件
/etc/openvpn/server/ 目录下新建 server.conf 文件,内容如下:

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

上述配置定义了UDP端口1194、隧道模式、证书路径、内部IP段(10.8.0.0/24)以及DNS和路由推送规则,使客户端能自动重定向流量。

第六步:启用IP转发并配置防火墙
编辑 /etc/sysctl.conf,取消注释 net.ipv4.ip_forward=1,然后执行:

sudo sysctl -p

再配置ufw允许OpenVPN流量:

sudo ufw allow 1194/udp
sudo ufw allow OpenSSH
sudo ufw enable

第七步:启动OpenVPN服务

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

为客户端生成证书和配置文件(需在服务器端操作):

sudo ./easyrsa gen-req client1 nopass
sudo ./easyrsa sign-req client client1

将生成的client1.crt、client1.key和ca.crt打包成.ovpn文件,供客户端导入使用。

至此,一个完整的OpenVPN服务就搭建完成了,客户端只需导入配置文件即可连接到服务器,享受加密隧道带来的安全访问体验,这种方案不仅适用于家庭网络,也广泛应用于企业级远程办公场景,真正做到了“随时随地,安全可控”。

实战指南,如何在Linux服务器上配置OpenVPN实现安全远程访问