OpenWRT 上的 OpenVPN 客户端无法在 Linksys WRT3200ACM 上通过 VPN 路由流量

OpenWRT 上的 OpenVPN 客户端无法在 Linksys WRT3200ACM 上通过 VPN 路由流量

在 OpenWRT 固件上使用 OpenVPN 时,我无法让流量通过 VPN 隧道路由。

路由器是WRT3200ACM,连接到Ubuntu上的OpenVPN服务器。

OpenVPN 客户端正在连接,我可以从路由器上的 SSH 控制台 ping 远程网络上的 IP。但是,当 OpenVPN 连接建立时,网络上的所有连接客户端都与互联网断开连接。

OpenVPN 客户端配置当前如下所示:

dev tun
proto udp
remote x.x.x.x 1194
cipher AES-256-CBC
auth SHA1
resolv-retry infinite
nobind
persist-key
persist-tun
client
redirect-gateway def1
verb 3

<ca>
-----BEGIN CERTIFICATE-----
REMOVED
-----END CERTIFICATE-----
</ca>

key-direction 1
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
REMOVED
-----END OpenVPN Static key V1-----
</tls-auth>


<cert>
-----BEGIN CERTIFICATE-----
REMOVED
-----END CERTIFICATE-----

</cert>

<key>
-----BEGIN PRIVATE KEY-----
REMOVED
-----END PRIVATE KEY-----

</key>

此配置在 Windows 和 MacOS 客户端上运行良好,并且流量被正确路由,但只要我将其连接到 Linksys WRT3200ACM 路由器上,事情就会出错。

我也在路由器上使用 dd-wrt ​​固件进行过测试,但问题是一样的,但是在使用 dd-wrt ​​时无法 ping 远程 ip,因此 OpenWRT 解决方案效果稍好一些。

本地网络配置为:

Network: 192.168.237.0
Subnet: 255.255.255.0
GW: 192.168.237.1

远程网络配置为:

Network: 192.168.37.0
Subnet: 255.255.255.0
GW: 192.168.37.1

OpenVPN虚拟网络配置为:

Network: 10.8.0.0
Subnet: 255.255.255.0
GW: 10.8.0.1

IP-range: 10.8.0.6-10
OpenVPN server: 10.8.0.5

答案1

我认为在您的情况下这是一个路由问题。您声明配置在您的客户端上运行良好 - 因此您的客户端获得范围内的 IP 地址10.8.0.6-10/24并通过 Ubuntu 路由所有流量。此处的发送 IP 是一个10.8.0.xIP。此外,连接时,ping 适用于本地路由器的 SSH,但不适用于客户端。如果您希望所有客户端通过 OpenVPN 隧道连接到互联网,则发送 IP 地址是192.168.237.0- 因此是您的本地网络。Ubuntu 服务器默认对该网络一无所知。您有两个选择:

  1. 在你的 ubuntu 机器上添加一个静态路由,该网络192.168.237.0/24可以通过路由器的 IP 访问10.8.0.x。然后你必须确保路由器始终获得相同的 IP 地址
  2. 添加路由协议 - 例如 RIP2。您可以通过在 openwrt 和 ubuntu 上安装quagga-zebra和轻松启用此quagga-ripd功能。然后您不必关心 OpenVPN 中路由器的动态 IP。

如果 Ubuntu 服务器不直接访问互联网并执行 NAT,则您必须进一步将路由分发到下一个设备/防火墙,以使其能够返回到您的客户端。通过 RIP 或通过静态路由。您可能还必须调整 NAT 语句。

相关内容