不使用 VPN 服务器,将所有流量路由到另一台服务器?

不使用 VPN 服务器,将所有流量路由到另一台服务器?

假设我有 2 台服务器

服务器 A 和服务器 B

我希望来自服务器 B 的所有流量都通过服务器 A(就像整个系统的代理),我知道一种方法是在服务器 A 上使用 VPN 服务器。但据我所知,有一种方法可以通过使用 iptables 或 ip route 来做到这一点,这将非常可靠。

如何实现?两台机器都运行 Debian Linux。

每个服务器都托管在不同的 ISP

答案1

除非两台计算机位于同一子网,否则无法实现这一点。

如果是,那么你首先要将服务器 A 配置为 B 的“默认网关”——同样,真实的网关需要通过 A 到 B 的相反路线:

  • 在服务器B上:to 0.0.0.0/0 via <A's IP>
  • 在真实网关上:to <B's IP>/32 via <A's IP>

但如果它们完全在不同的网络上(如你所说“托管在不同的 ISP”),仅有的您可以使用 A 作为网关的方法是设置虚拟第 2 层网络 - 也就是 VPN。

(这不包括 IP“源路由”,由于安全问题,它已从大多数现代网络堆栈中被彻底删除。)

如果你担心隐私问题(流量“泄露”),可以配置服务器 B,以便仅有的它的默认路由是通过 VPN – 如果它只与服务器 A 通信,那么它只需要一个特定的“主机路由”(/32 或 /128)到 A。例如:

  • to ::/0 via <A's internal IP>
  • to <A's external IP>/128 via <real default gateway>

答案2

使用 iptables:

试试这个:显然根据您的设置更改界面。

iptables -t nat -A PREROUTING -i eth0 -j DNAT --到目的地 192.168.3.2

相关内容