两个子网之间使用 openvpn 进行双向路由

两个子网之间使用 openvpn 进行双向路由

我是 openvpn 的新手,最近我在我的网络中设置了一个 openvpn(所有系统都有 centos):

在此处输入图片描述

OpenVpn 计算机与子网 192.168.2.0/24 有直接连接(通过其一个接口),客户端 10.8.0.2 通过 openvpn 客户端连接到 vpn 服务器。现在我想在客户端 10.8.0.2 与子网/服务器 192.168.2.3 之间建立双向连接。这怎么可能呢?

我的 server.config 文件是:

port 1194
proto udp
dev tun
user nobody
group nobody
persist-key
persist-tun
keepalive 10 120
topology subnet

server 10.8.0.0 255.255.255.0


ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 1.0.0.1"
push "dhcp-option DNS 1.1.1.1"
push "redirect-gateway def1 bypass-dhcp"
dh none
ecdh-curve prime256v1
tls-crypt tls-crypt.key 0
crl-verify crl.pem
ca ca.crt
cert server_uePSv7FhLjJEF4mf.crt
key server_uePSv7FhLjJEF4mf.key
auth SHA256
cipher AES-128-GCM
ncp-ciphers AES-128-GCM
tls-server
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
status /var/log/openvpn/status.log
verb 3

答案1

您需要通知 openvpn 客户端该路由存在,因此请将这一行添加到服务器的 openvpn 配置中:

push "route 192.168.2.0 255.255.255.0"

这应该足够了,假设您不通过 iptables 阻止此转发(例如,iptables -A FORWARD -i eth0 -o tun0; iptables -A FORWARD -i tun0 -o eth0假设eth0您的 192.168.2.0/24 接口是tun0openvpn 接口)并且通过例如启用转发echo 1 > /proc/sys/net/ipv4/ip_forward

正如标题所示,这实际上不是两个子网之间的路由,而是主机和子网之间的路由。如果客户端实际上是 192.168.8.0/24 的网关,那么您还需要在服务器的 openvpn 配置中添加以下几行:

route 192.168.8.0 255.255.255.0
client-config-dir ccd

将其放入/etc/openvpn/ccd/clientname

iroute 192.168.8.0 255.255.255.0

现在,每当客户端连接时,openvpn 服务器都会添加一条到 192.168.8.0/24 的路由。

相关内容