简要描述;简介
我有两个系统,一个直接连接到互联网的 VPS,另一个系统位于我的路由器后面的地下室 (NAT)。我想使用 VPS 并将其 IP 地址之一、任何端口上的所有请求转发到我地下室的系统。
我已经使用 OpenVPN 连接了两者,并且成功地完成了我打算做的事情 - 我可以使用以下过程将 IP 上的所有请求转发到我地下室的计算机。
- 通过 OpenVPN 连接机器
- 在面向互联网的 VPS 上运行以下命令
iptables -t nat -A PREROUTING -d public.facing.vps.ip -j DNAT --to-destination basement.computer.vpn.ip
- 在地下室机器上运行以下命令
echo '100 VPN' >> /etc/iproute2/rt_tables (only once) ip rule add from vpn.subnet/24 table VPN ip route add default via vpn.gateway.ip table VPN
这始终有效,但我从本文它在 GRE 隧道的背景下严格讨论它,我很难理解最后一步的含义。
我的问题
是否可以让 OpenVPN 服务器或配置客户端自动执行(基于策略?)路由以通过隧道返回数据包?
我不确定底部命令集的确切含义,这就是为什么我发现将它们从当前表达式“翻译”为 openvpn“路由”很棘手
它们似乎被称为“基于策略的路由”——当数据包来自 VPN 子网时,它将通过 VPN 网关将其路由回(通过将其路由表更改为“VPN”)
我希望 OpenVPN 自动完成此操作,因为我认为 OpenVPN 可以在 Windows 上执行类似的操作,但我还没有想到这一点。如果能自动完成此操作就好了,这样我就可以自动执行 iptables 规则,将公共 IP 上的流量转发到 VPN 客户端。