在当今远程办公和分布式团队日益普及的背景下,虚拟私人网络(VPN)已成为保障数据安全与访问控制的核心工具,作为一名网络工程师,我经常被问及如何快速、可靠地搭建一个基于开源协议的VPN服务,我将详细介绍如何使用Linux系统中的OpenVPN来搭建一个功能完备的站点到站点或远程客户端连接的VPN服务,重点聚焦于实际可用的命令行操作流程。
确保你有一台运行Linux系统的服务器(如Ubuntu 20.04或CentOS Stream 8),并具备root权限,我们以Ubuntu为例进行演示。
第一步是安装OpenVPN及相关依赖,执行以下命令:
sudo apt update sudo apt install openvpn easy-rsa -y
Easy-RSA是一个用于生成证书和密钥的工具包,是OpenVPN实现TLS加密通信的关键组件。
第二步,配置证书颁发机构(CA),运行以下命令初始化PKI环境:
make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa
编辑vars文件(位于当前目录下),根据你的组织信息修改如下参数:
export KEY_COUNTRY="CN"
export KEY_PROVINCE="Beijing"
export KEY_CITY="Beijing"
export KEY_ORG="MyCompany"
export KEY_EMAIL="admin@mycompany.com"
生成CA证书和私钥:
./clean-all ./build-ca
系统会提示输入CA的Common Name(建议设为“CA”),完成后会在keys/目录下生成ca.crt和ca.key。
第三步,生成服务器证书和密钥,执行:
./build-key-server server
同样会提示输入Common Name(建议为“server”),并确认是否签发证书。
第四步,生成客户端证书,例如为用户“alice”创建:
./build-key alice
第五步,生成Diffie-Hellman参数(用于密钥交换):
./build-dh
第六步,配置OpenVPN服务器主文件,创建/etc/openvpn/server.conf示例:
port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/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 /var/log/openvpn-status.log
verb 3
第七步,启用IP转发和防火墙规则(Ubuntu为例):
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf sysctl -p ufw allow 1194/udp ufw allow OpenSSH
启动OpenVPN服务:
systemctl enable openvpn@server systemctl start openvpn@server
至此,服务器端已部署完成,客户端只需获取ca.crt、alice.crt、alice.key三个文件,并配置对应的.ovpn文件即可连接,通过以上命令序列,你可以快速构建一个安全、可扩展的OpenVPN服务,适用于中小型企业或个人远程办公需求,定期更新证书、监控日志、限制访问权限是保障长期稳定运行的关键。

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


