在现代企业办公环境中,远程访问内部资源已成为常态,无论是员工在家办公、出差人员接入公司内网,还是分支机构之间的安全通信,虚拟私人网络(VPN)都扮演着至关重要的角色,作为网络工程师,我经常被问到:“如何在自己的服务器上搭建一个稳定、安全的VPN服务?”本文将带你从零开始,一步步完成基于OpenVPN的服务器端部署与客户端配置,适用于Linux系统(以Ubuntu 20.04为例),适合中小型企业或技术爱好者参考。
第一步:准备环境
你需要一台公网IP的Linux服务器(如阿里云、腾讯云或自建服务器),确保防火墙允许UDP端口1194(OpenVPN默认端口),登录服务器后,更新系统包管理器并安装OpenVPN及相关工具:
sudo apt update && sudo apt upgrade -y sudo apt install openvpn easy-rsa -y
第二步:生成证书和密钥(PKI体系)
OpenVPN使用SSL/TLS加密,因此需要一套完整的公钥基础设施(PKI),首先复制EasyRSA模板到工作目录:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa
编辑vars文件,设置国家、组织等信息(如CN=China, O=MyCompany),然后执行初始化和证书生成:
./easyrsa init-pki ./easyrsa build-ca nopass # 创建CA根证书 ./easyrsa gen-req server nopass # 生成服务器证书 ./easyrsa sign-req server server # 签署服务器证书 ./easyrsa gen-req client1 nopass # 为客户端生成证书 ./easyrsa sign-req client client1
第三步:配置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 "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
第四步:启用IP转发与防火墙规则
修改/etc/sysctl.conf,取消注释net.ipv4.ip_forward=1,然后应用:
sysctl -p
添加iptables规则,允许流量转发并开放UDP 1194端口:
iptables -A INPUT -p udp --dport 1194 -j ACCEPT 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服务:
systemctl enable openvpn@server systemctl start openvpn@server
客户端需下载ca.crt、client1.crt、client1.key及client.ovpn配置文件(可从服务器复制),使用OpenVPN客户端连接即可,建议在客户端配置中加入auth-user-pass实现用户名密码认证(可选增强安全性)。
至此,你已成功搭建一个基于TLS加密的、支持多用户接入的企业级VPN服务,该方案不仅成本低、易维护,还能通过日志监控和定期证书轮换进一步提升安全性,网络安全无小事,务必定期备份证书、更新软件版本,并考虑结合双因素认证(如Google Authenticator)实现更高级防护。

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






