作为一名网络工程师,在企业或家庭网络环境中,构建一个稳定、安全的虚拟私人网络(VPN)是保障远程访问和数据传输的重要手段,本文将详细介绍如何在Linux服务器上部署OpenVPN服务,并配置客户端连接,确保用户能够通过加密隧道安全地访问内网资源。
准备工作必不可少,你需要一台运行Linux(如Ubuntu 22.04 LTS或CentOS Stream 9)的服务器,拥有公网IP地址,并确保防火墙(如UFW或firewalld)已开放UDP端口1194(OpenVPN默认端口),建议使用SSH密钥登录,避免密码泄露风险。
第一步:安装OpenVPN及相关工具
以Ubuntu为例,执行以下命令安装OpenVPN和Easy-RSA(用于生成证书和密钥):
sudo apt update sudo apt install openvpn easy-rsa -y
第二步:配置证书颁发机构(CA)
使用Easy-RSA生成PKI(公钥基础设施)环境:
make-cadir ~/openvpn-ca cd ~/openvpn-ca
编辑vars文件,设置国家、组织等信息(可按需修改):
export KEY_COUNTRY="CN" export KEY_PROVINCE="Beijing" export KEY_CITY="Beijing" export KEY_ORG="MyCompany" export KEY_EMAIL="admin@mycompany.com" export KEY_OU="IT Dept"
执行初始化和签发CA证书:
./clean-all ./build-ca
第三步:生成服务器证书与密钥
运行以下命令为服务器生成证书和密钥:
./build-key-server server
系统会提示是否签名,输入“yes”确认,同时生成Diffie-Hellman参数(用于密钥交换):
./build-dh
第四步:配置OpenVPN服务端
复制生成的证书和密钥到OpenVPN配置目录,并创建主配置文件:
sudo cp ca.crt dh.pem server.crt server.key /etc/openvpn/ sudo nano /etc/openvpn/server.conf
在配置文件中添加如下关键内容(可根据实际网络调整):
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh 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转发并配置NAT
为了让客户端访问外网,需要开启IP转发:
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p
配置iptables规则(假设网卡为eth0):
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT
第六步:启动OpenVPN服务并测试
sudo systemctl enable openvpn@server sudo systemctl start openvpn@server
为客户端生成配置文件(通常用Easy-RSA的build-key命令生成每个用户的证书),并将客户端配置文件(包含证书、密钥和服务器IP)分发给用户,用户只需在OpenVPN客户端(如Windows的OpenVPN GUI或Android的OpenVPN Connect)导入该配置即可连接。
通过以上步骤,你成功搭建了一个基于OpenVPN的安全远程访问通道,适用于远程办公、多分支机构互联等多种场景,记住定期更新证书、监控日志、强化防火墙策略,才能确保长期稳定运行。

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






