安装OpenVPN
- 下载并安装OpenVPN:访问OpenVPN官网下载适合你操作系统的安装包。
- 安装完成后,确保OpenVPN服务已经安装。
生成证书和密钥
-
生成服务器证书和私人密钥:
cd /etc/openvpn openssl req -x509 -newkey -days 365 -keyopt rsa:2048 -out server.crt -out req.pem openssl rsa -in req.pem -out server.key
这将生成服务器证书
server.crt和私人密钥server.key。 -
生成客户端证书和密钥: 为每个客户端生成不同的证书和密钥:
openssl req -x509 -newkey -days 365 -keyopt rsa:2048 -out client.crt -out client.req.pem openssl rsa -in client.req.pem -out client.key
配置OpenVPN服务器
-
编辑服务器配置文件:
cp /usr/share/openvpn/as/scripts/server.conf /etc/openvpn/server.conf
打开
server.conf,修改以下设置:# 设置监听端口 listen_port=1194 # 设置协议(TCP和UDP都支持) proto tcp proto_udp=1194 # 确保服务器不闲置太久 keepalive 10
-
分流设置:
# 在server.conf中添加以下内容 # 使用iptables进行NAT转发 push "route 10.10.10. 255.255.255. 0..." push "route 172.16.. 255.255.. 0..."
配置客户端访问规则
- 使用
client-connect脚本:# 创建脚本,指定路径 mkdir -p /etc/openvpn/scripts echo 'script-reject if not client' >> /etc/openvpn/scripts/client-connect.sh echo 'route 10.10.10. 255.255.255.' >> /etc/openvpn/scripts/client-connect.sh echo 'route 172.16.. 255.255..' >> /etc/openvpn/scripts/client-connect.sh # 设置脚本为可执行 chmod +x /etc/openvpn/scripts/client-connect.sh
启动OpenVPN服务
-
生成密钥文件:
mv /etc/openvpn/server.key /etc/openvpn/server.key mv /etc/openvpn/server.crt /etc/openvpn/server.crt
-
启动服务:
# 启动OpenVPN服务 sudo systemctl start openvpn@server # 设置开机启动 sudo systemctl enable openvpn@server
配置客户端
- 下载并安装OpenVPN客户端:在每个客户端上安装OpenVPN软件。
- 连接到服务器:设置客户端连接到服务器地址和端口(如
remote myserver.com 1194)。 - 输入凭证:使用生成的客户端证书和密钥登录。
测试和验证
- 连接状态:检查客户端连接状态,确保显示正在连接。
- IP和端口分配:使用
ifconfig查看客户端的VPN IP和端口。
故障排除
- 端口冲突:使用
iptables转发或设置OpenVPN的NAT选项。 - 证书问题:检查证书是否有效,权限是否正确。
提升配置(可选)
- 限制并发连接:在
server.conf中添加max_clients 100。 - 设置keepalive时间:确保服务器响应时间及时。
通过以上步骤,你可以配置一个高效的VPN分流代理,确保网络负载均衡和访问控制。








