在现代企业网络架构中,远程访问内网资源已成为常态,无论是远程办公、分支机构互联,还是跨地域开发协作,都需要一个安全、稳定且灵活的虚拟专用网络(VPN)解决方案,OpenVPN作为开源、功能强大、跨平台的VPN软件,因其高安全性、可定制性强和良好的社区支持,在Linux系统上被广泛采用,本文将详细介绍如何在Linux服务器上部署OpenVPN,以实现安全可靠的内网通信。
确保你的Linux服务器运行的是稳定版本(如Ubuntu 20.04/22.04或CentOS 7/8),并具备公网IP地址,建议使用云服务商(如阿里云、AWS、腾讯云)的VPS,便于管理与扩展,安装OpenVPN前,需更新系统包列表:
sudo apt update && sudo apt upgrade -y
接着安装OpenVPN及相关工具:
sudo apt install openvpn easy-rsa -y
easy-rsa是用于生成证书和密钥的工具,是OpenVPN安全认证的核心组件。
接下来配置证书颁发机构(CA),进入/etc/openvpn/easy-rsa/目录,并初始化PKI环境:
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
然后生成Diffie-Hellman密钥交换参数(提升加密强度):
sudo ./easyrsa gen-dh
准备OpenVPN服务端配置文件,创建/etc/openvpn/server.conf如下:
port 1194 proto udp dev tun ca /etc/openvpn/easy-rsa/pki/ca.crt cert /etc/openvpn/easy-rsa/pki/issued/server.crt key /etc/openvpn/easy-rsa/pki/private/server.key dh /etc/openvpn/easy-rsa/pki/dh.pem server 10.8.0.0 255.255.255.0 push "route 192.168.1.0 255.255.255.0" # 内网网段 push "dhcp-option DNS 8.8.8.8" keepalive 10 120 cipher AES-256-CBC auth SHA256 tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0 user nobody group nogroup persist-key persist-tun status /var/log/openvpn-status.log verb 3
此配置指定了OpenVPN监听UDP端口1194,为客户端分配IP地址池10.8.0.0/24,并推送内网路由(例如192.168.1.0/24),使客户端能访问局域网资源。
完成配置后,启用IP转发并设置防火墙规则(以iptables为例):
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf sysctl -p iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
启动OpenVPN服务:
sudo systemctl enable openvpn@server sudo systemctl start openvpn@server
至此,服务器端配置完成,客户端方面,只需将CA证书、客户端证书、私钥及TLS密钥打包成.ovpn配置文件,并用OpenVPN客户端(如OpenVPN Connect或命令行工具)连接即可。
通过以上步骤,你可以在Linux上构建一个基于证书认证的OpenVPN服务,实现远程用户安全访问内网资源,同时具备良好的扩展性和维护性,这种方案特别适合中小型企业或开发者团队使用,既经济又高效。

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






