OpenVPN 服务教程
1. 什么是 OpenVPN? 🔒
OpenVPN 是一种开源的虚拟专用网络(VPN)软件,可以为用户提供安全的点对点或站点到站点的连接。它支持多种加密协议,可以确保通过公网上传输的数据保持私密性。OpenVPN 是基于 SSL/TLS 协议的,广泛用于企业和个人的安全网络通信。🌍
特点 | 描述 |
---|---|
高度安全性 | 支持强大的加密算法(如 AES、RSA、SHA)。 |
支持多种操作系统 | 支持 Windows、Linux、macOS、Android 和 iOS。 |
灵活配置 | 提供多种认证方法(如证书、用户名/密码)。 |
2. 安装 OpenVPN 📥
2.1 安装 OpenVPN
在大多数 Linux 发行版中,OpenVPN 可以通过包管理工具进行安装。在 Ubuntu 或 Debian 系统上,使用以下命令进行安装:
sudo apt update
sudo apt install openvpn easy-rsa
在 CentOS 或 RHEL 系统上:
sudo yum install epel-release
sudo yum install openvpn easy-rsa
2.2 启动 OpenVPN 服务
安装完成后,启动 OpenVPN 服务:
sudo systemctl start openvpn@server
如果你希望 OpenVPN 在系统启动时自动启动,可以使用:
sudo systemctl enable openvpn@server
2.3 检查 OpenVPN 服务状态
你可以通过以下命令检查 OpenVPN 服务是否正在运行:
sudo systemctl status openvpn@server
3. 配置 OpenVPN 服务 ⚙️
3.1 配置 OpenVPN 服务器
OpenVPN 的主要配置文件位于 /etc/openvpn/server.conf
。如果没有该文件,可以复制示例配置文件:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gunzip /etc/openvpn/server.conf.gz
然后编辑 /etc/openvpn/server.conf
配置文件,主要修改以下几项:
- port: 设置 OpenVPN 使用的端口,默认是
1194
。 - proto: 设置协议,通常是
udp
。 - dev: 设置虚拟设备,通常使用
tun
。 - server: 配置 VPN 网络的 IP 地址范围。
- ca、cert、key: 设置证书和密钥文件。
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
3.2 配置 IP 转发和防火墙
为了使 VPN 客户端能够访问互联网,您需要启用 IP 转发并配置防火墙规则。
- 编辑
/etc/sysctl.conf
启用 IP 转发:
net.ipv4.ip_forward = 1
然后运行以下命令应用更改:
sudo sysctl -p
- 配置防火墙规则,允许 VPN 流量通过:
sudo ufw allow 1194/udp
如果使用 iptables
,可以使用以下规则:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
确保这些规则在重启后依然生效,可以保存防火墙规则:
sudo iptables-save > /etc/iptables/rules.v4
3.3 配置证书和密钥
OpenVPN 使用证书和密钥来进行身份验证和加密。您需要使用 EasyRSA 工具来生成证书。
- 配置 EasyRSA 环境:
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
- 创建并配置证书颁发机构(CA):
source vars
./clean-all
./build-ca
- 创建服务器证书和密钥:
./build-key-server server
./build-dh
- 创建客户端证书和密钥:
./build-key client1
将生成的证书和密钥文件复制到 /etc/openvpn
目录,并更新服务器配置文件指向这些文件。
3.4 启动 OpenVPN 服务
配置完成后,重新启动 OpenVPN 服务:
sudo systemctl restart openvpn@server