比N2N兼容性高、比WireGuard覆盖面广。
前言
记录下OpenVPN服务的部署流程(centos)。 目标是实现客户端A与客户端B的LAN设备可互访,且客户端A、B下的LAN设备可访问其他客户端,但禁止其他客户端直接访问客户端A、B下的LAN用户。
TIP
本文仅包含OpenVPN服务端基础部署与客户端互通配置。 客户端配置及相关内容会在另一篇中说明。
服务端前期配置
启用EPEL仓库
bash
sudo yum install epel-release -y安装OpenVPN和Easy-RSA
bash
sudo yum install openvpn easy-rsa -y初始化并生成证书与参数、复制文件
bash
mkdir -p ~/openvpn-ca
cp -r /usr/share/easy-rsa/3/* ~/openvpn-ca
cd ~/openvpn-ca
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa build-server-full server nopass
./easyrsa gen-dh创建证书目录及服务端配置文件
bash
sudo mkdir /etc/openvpn/server
sudo cp ~/openvpn-ca/pki/ca.crt /etc/openvpn/server/
sudo cp ~/openvpn-ca/pki/issued/server.crt /etc/openvpn/server/
sudo cp ~/openvpn-ca/pki/private/server.key /etc/openvpn/server/
sudo cp ~/openvpn-ca/pki/dh.pem /etc/openvpn/server/
sudo vim /etc/openvpn/server/server.conf配置文件内容
以下是一个配置文件样例,建议根据自身需求修改
ini
port 1234 # 建议自主选择端口
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.123.0.0 255.255.255.0 # VPN 地址池 建议自主选择
client-to-client # 允许隧道转发
client-config-dir /etc/openvpn/ccd # 客户端路由声明目录
keepalive 10 120
persist-key
persist-tun
topology subnet
status openvpn-status.log # 日志记录
verb 3
log-append /var/log/openvpn.log网络配置(记得后台开启对应端口)
bash
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-port=1234/udp # 注意端口
sudo firewall-cmd --permanent --add-masquerade # 视实际情况决定
sudo firewall-cmd --reload
sudo systemctl start openvpn-server@server
sudo systemctl enable openvpn-server@server
mkdir ~/client-configTIP
可以使用这个命令确认下是否正确 sudo firewall-cmd --list-ports
确认没问题后,就可以尝试配置客户端了。