使用 iptables 将 IP 重定向到另一个 IP

使用 iptables 将 IP 重定向到另一个 IP

我有一台机器连接到地址为 1.2.3.4 的 openvpn 服务器。我的机器的 IP 为 192.168.1.0/24,它可以访问地址 1.2.3.4。一旦我连接到 openvpn 服务器,就会创建一个新的接口 tun0,并为其分配 IP 地址 192.168.0.6。我可以 ping 托管 IP 地址为 192.168.0.1 的 VPN 的机器。流量按预期通过接口 tun0。

我可以设置一些 iptables 规则来强制流量通过 tun0,即使我直接 ping 1.2.3.4?特别是,我想将其限制在 1.2.3.4 的 80 端口上

答案1

因此,首先我们需要更改默认路由。运行ip route应显示当前默认路由是 VPN 网络的网关192.168.0.0/24。这需要通过删除当前默认路由并创建指向本地网络网关/路由器(而非 VPN)的新路由来更改(连接到 VPN 时)。因此,如果您的本地网络网关是,则172.16.2.1您将运行:

  • sudo ip route del default
  • sudo ip route default via 172.16.2.1

现在,如果您运行ip routeroute -n您应该会看到新的默认路由现在指向您的本地网络,并且默认情况下没有流量应该通过您的 VPN 隧道。

现在我们可以继续将端口 80/443 上的所有传出流量重定向到您的 VPN 网关。

  • sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:80
  • sudo iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to-destination 192.168.0.1:443

现在,这应该会将所有出站的网络流量转发/重定向到您的 VPN 的默认网关/路由器,并且所有其他流量默认从本地出站。

尝试一下并告诉我它是否满足您的要求!

相关内容