将所有流量从一台服务器路由到另一台服务器

将所有流量从一台服务器路由到另一台服务器

我有两台服务器。

第一个来自本地数据中心。OpenVPN 安装在 Ubuntu 22.04 上。客户端连接到此服务器并从10.8.0.0/8池中获取 IP。客户端配置为通过 VPN 重定向其默认网络网关(push "redirect-gateway def1 bypass-dhcp"

还有另一台来自 Linode 的服务器,它有一个公共 IP 地址。它是默认的 Ubuntu 22.04。它上面没有安装任何特殊软件,防火墙也没有启用。

我希望所有连接到第一台服务器的客户端都能够通过 Linode 机器的公共 IP 访问互联网。

我当前的第一台服务器的配置如下:

ip 链接显示

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether fa:16:3e:90:ac:8e brd ff:ff:ff:ff:ff:ff
    altname enp3s0
12: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 500
    link/none

sudo sysctl-p

net.ipv4.ip_forward = 1

/etc/ufw/before.rules

....
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
....

/etc/默认/ufw

....
DEFAULT_FORWARD_POLICY="ACCEPT"
....

我知道这是一种路由魔法,但我只是一个新手,所以请帮助我。

答案1

请参阅此问题的答案:https://askubuntu.com/a/461003/1157587

  • 第一台服务器:配置为客户端连接的接入点。(本地数据中心)
  • 第二台服务器:数据出口点。(托管在 Linode 上)

首先在第二台服务器上安装openvpn;它将用作第一台服务器。可在此处找到执行此操作的有用脚本:https://github.com/angristan/openvpn-install。 连接从第一台服务器到第二台服务器。

另一种方法是使用尾秤而且它出口节点功能。我在 5 台以上的机器上运行此功能,所有流量都通过 Linode 盒子发出。这肯定是一种完美的体验。

答案2

我建议如下:

  1. 对于第一台服务器,您只需要更改路由表,以便第二台服务器成为默认网关,如果您希望将请求转发到内部子网也要通过它,那么这可能是唯一的网关。请参阅:默认网关更改

  2. 第二台服务器需要配置为路由器,其中包括配置一些组件,但网上有一些指南。这个看起来不错:https://kifarunix.com/configure-ubuntu-20-04-as-linux-router/

相关内容