![如果服务器端没有推送路由,如何使所有客户端流量都通过OpenVPN?](https://linux22.com/image/120291/%E5%A6%82%E6%9E%9C%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E6%B2%A1%E6%9C%89%E6%8E%A8%E9%80%81%E8%B7%AF%E7%94%B1%EF%BC%8C%E5%A6%82%E4%BD%95%E4%BD%BF%E6%89%80%E6%9C%89%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%B5%81%E9%87%8F%E9%83%BD%E9%80%9A%E8%BF%87O%E2%80%8B%E2%80%8BpenVPN%EF%BC%9F.png)
我在 OpenWRT 上安装了 OpenVPN 客户端,并希望通过 VPN 引导我的所有流量,包括游戏流量。
但服务器端并没有将路由推送到客户端。如何通过在 OpenWRT 中使用ip route
和ip rule
命令进行设置来实现此目的?
- 更新 -
事实上,开放式网络只是一个虚拟机,我把它部署在VirtualBox上。来自主机的所有流量都将流经虚拟机。我读了一些关于如何使用 ip 路由静态路由流量的文章,但仍然不知道我需要使用什么 ip 地址来替换规则的地址ip route add
部分ip rule add
。
答案1
如果您想通过 VPN 路由来自路由器的所有流量,只需通过 OpenVPN 配置默认路由即可。请记住通过互联网网关配置到 OpenVPN 服务器的外部 IP 的路由(如果未自动配置)。
ip route add <openvpn server external ip> via <default internet gateway>
ip route change default via <openvpn gateway (internal) ip>
如果您想根据流量的来源(或其他一些条件)应用不同的路由,则需要使用单独的路由表并创建规则何时使用它。
例如,新表标识为10
:
ip route add default via <openvpn gateway (internal) ip> table 10
ip rule add from <your network (address+netmask)> table 10
ip route flush cache
您无需更改路线主要的当您使用单独的路由表时的路由表。
您的 OpenVPN 服务器不会自动知道网络中主机的路由。您需要配置此类路由或在 OpenVPN 客户端上使用 NAT。
答案2
我想我们这里谈论的是 IPv4?如果这是你的主路由器,那么它不需要向客户端提供任何路由,在正常情况下客户端已经将路由器设置为默认路由,因此路由器(在本例中为 OpenWRT)可以轻松地进行排序其余的交通。
但仍然要回答这个问题:通常您可以通过使用 DHCP 服务器向您的客户端提供路由信息。它为客户端提供 IP 地址、DNS(查找)信息和路由。尽管最常见的是,这仅适用于前面提到的默认路由,而不是整个路由表。
答案3
您需要添加到 OpenVPN 服务器配置:
push "redirect-gateway def1"
这将通过 VPN 服务器网关设置 128.0.0.0 路由,所有流量将开始通过它流动
具有自定义路由的其余配置很可能不需要,因为 OpenWRT 中已经设置了上游和正确路由的 MASQUERADE