在当今数字化办公日益普及的背景下,企业或个人用户对远程访问内网资源的需求持续增长,OpenVPN作为一款开源、跨平台且功能强大的虚拟私人网络(VPN)解决方案,因其稳定性强、安全性高、配置灵活而被广泛采用,本文将详细介绍如何从零开始搭建一个基于Linux服务器的OpenVPN服务,帮助你快速建立一条加密、安全的远程连接通道。
第一步:准备环境
你需要一台运行Linux(推荐Ubuntu 20.04/22.04或CentOS 7/8)的服务器,具备公网IP地址,并确保防火墙允许UDP 1194端口通信(OpenVPN默认使用该端口),若使用云服务商(如阿里云、腾讯云、AWS),请在安全组中开放此端口。
第二步:安装OpenVPN及相关工具
通过SSH登录服务器后,执行以下命令更新系统并安装OpenVPN:
sudo apt update && sudo apt install -y openvpn easy-rsa
对于CentOS系统,使用yum替代apt。
安装完成后,Easy-RSA是用于生成证书和密钥的工具包,它是OpenVPN认证体系的核心。
第三步:配置证书颁发机构(CA)
进入Easy-RSA目录并初始化PKI环境:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa
编辑vars文件,设置国家、组织名称等信息(export KEY_COUNTRY="CN"),随后执行:
./clean-all ./build-ca
这会生成CA根证书(ca.crt),后续所有客户端和服务端都需信任它。
第四步:生成服务器证书和密钥
./build-key-server server
输入“yes”确认签名请求,生成server.crt和server.key。
接下来生成Diffie-Hellman参数(提升加密强度):
./build-dh
第五步:配置OpenVPN服务端
复制模板配置文件到/etc/openvpn目录:
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ gunzip /etc/openvpn/server.conf.gz
编辑/etc/openvpn/server.conf,关键修改包括:
port 1194(端口可自定义)proto udp(推荐UDP以获得更好性能)dev tun(使用TUN模式)ca ca.crt、cert server.crt、key server.key(引用前面生成的证书)dh dh.pem(指定Diffie-Hellman参数文件)push "redirect-gateway def1 bypass-dhcp"(让客户端流量经由VPN路由)push "dhcp-option DNS 8.8.8.8"(推送DNS服务器)
第六步:启用IP转发与防火墙规则
编辑/etc/sysctl.conf,取消注释net.ipv4.ip_forward=1,然后执行:
sysctl -p
配置iptables规则(或firewalld):
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
保存规则(Ubuntu可用iptables-save > /etc/iptables/rules.v4)。
第七步:启动服务与客户端配置
systemctl enable openvpn@server systemctl start openvpn@server
客户端可通过OpenVPN GUI(Windows)或命令行工具连接,需要提供ca.crt、client.crt、client.key及配置文件(.ovpn)。
示例客户端配置包含:
client dev tun proto udp remote your-server-ip 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key verb 3
至此,你的OpenVPN服务已成功部署,可实现安全远程访问内网资源,建议定期更新证书、监控日志、结合Fail2ban防止暴力破解,确保长期稳定运行。

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


