作为一名网络工程师,我经常需要为公司或客户搭建安全可靠的远程访问通道,OpenVPN 是一个开源、灵活且功能强大的虚拟私人网络(VPN)解决方案,尤其适合运行在 Linux 服务器上的场景,本文将详细介绍如何在 Linux 系统上部署 OpenVPN,从而实现加密、安全的远程访问。
我们需要明确目标:通过 OpenVPN 创建一个点对点的加密隧道,使用户从外部网络能够像在局域网内部一样访问内网资源,例如文件服务器、数据库或办公应用,整个过程分为五个核心步骤:环境准备、安装与配置服务器端、生成证书和密钥、启动服务、客户端配置与连接测试。
第一步是环境准备,确保你有一台运行 Linux 的服务器(推荐 Ubuntu Server 或 CentOS Stream),并具备公网 IP 地址,我们以 Ubuntu 22.04 为例,使用 sudo 权限执行以下命令:
sudo apt update && sudo apt install openvpn easy-rsa -y
第二步是配置 OpenVPN 服务器,默认配置文件位于 /etc/openvpn/server/,但更推荐使用 easy-rsa 工具来管理 PKI(公钥基础设施),我们将使用 easy-rsa 初始化证书颁发机构(CA):
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa ./easyrsa init-pki ./easyrsa build-ca nopass # 不设置密码,便于自动化部署
接下来生成服务器证书和密钥:
./easyrsa gen-req server nopass ./easyrsa sign-req server server
然后生成 Diffie-Hellman 密钥交换参数(用于增强安全性):
./easyrsa gen-dh
将这些文件复制到 OpenVPN 配置目录,并创建主配置文件 /etc/openvpn/server/server.conf,关键配置项包括:
dev tun:使用 TUN 模式(IP 层隧道)proto udp:UDP 协议效率更高port 1194:默认端口,可自定义ca,cert,key,dh:指向刚刚生成的证书文件server 10.8.0.0 255.255.255.0:分配给客户端的私有 IP 段push "redirect-gateway def1 bypass-dhcp":强制客户端流量走 VPNpush "dhcp-option DNS 8.8.8.8":指定 DNS 服务器
第三步是启用 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 FORWARD -i tun0 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
第四步启动 OpenVPN 服务:
systemctl enable openvpn-server@server systemctl start openvpn-server@server
第五步是客户端配置,使用 easy-rsa 为每个用户生成唯一证书(如 client1),并将 ca.crt、client1.crt、client1.key 和 ta.key(TLS-auth 密钥)打包发送给客户端,Windows 用户可用 OpenVPN GUI,Linux 用户用命令行连接:
openvpn --config client.ovpn
测试连接是否成功,检查日志(journalctl -u openvpn-server@server)确认无错误,并验证客户端能否访问内网服务。
通过以上步骤,你就能搭建一个稳定、安全、可扩展的 OpenVPN 服务,满足企业远程办公或跨地域访问需求,记住定期更新证书、监控日志、加强防火墙策略,才能真正保障网络安全。

半仙加速器-海外加速器|VPN加速器|vpn翻墙加速器|VPN梯子|VPN外网加速






