如何为 SSH 服务器设置反向代理?

如何为 SSH 服务器设置反向代理?

我有一台虚拟机,其网络接口分别为eth0eth1eth2。所有这些接口都连接到独立的 ISP 路由器,这些路由器配置了全局静态 IP Public-IP1,例如Public-IP2、 和。在内部,每个 ISP 路由器在与路由器连接的相应接口上为虚拟机提供一个 IP ,Public-IP3例如、和。我已将所有虚拟机接口上的端口 22 转发到 ISP 路由器的公共 IP。Internal-IP1Internal-IP2Internal-IP3

现在,当我尝试 时sshPublic-IP1我可以访问虚拟机,但无法访问Public-IP2和上的虚拟机Public-IP3。为了进行测试,如果我只启用虚拟机上的一个网络接口,我就可以从相应的公共 IP 登录到虚拟机。例如,如果eth2虚拟机上只有 接口处于活动状态,那么我就可以通过 访问虚拟Public-IP2ssh

仅当有多个网络接口处于活动状态时才会发生此问题。在这种情况下,只有第一个接口接受连接,而其他接口仍无法访问。

我想知道是否需要某种配置来实现虚拟机可同时通过所有三个公共 IP 访问的设置。

首先,我尝试设置,netplan但没有任何效果,尽管服务运行正常且没有错误。配置可在此处获取https://paste.ubuntu.com/p/fxQkJMbtmb/- 准确粘贴自/etc/neplan/network.yaml

接下来,我进行了更新/etc/network/interfaces,确实可以正确启动界面,但却让我陷入了上述问题。配置可在此处获取 -https://paste.ubuntu.com/p/X5Vsy86z9M/- 准确粘贴自/etc/network/interfaces

/etc/iproute2/rt_tables我还设置了刚刚列出名称的表格。配置可在此处获取 -https://paste.ubuntu.com/p/4ykJp3W5cK/- 从 /etc/iproute2/rt_tables 准确粘贴

路线列表可在此处查看 -https://pastebin.ubuntu.com/p/b9JNTd9yHW/

答案1

使用 Netplan 配置,您仍指定默认网关所有三个接口你需要选择作为默认接口。

此配置否定你的路由表并使用 DHCP 来定义您的网关 - 这不起作用,因为这会设置系统范围的默认网关。

我们需要对其进行调整 - 禁用 DHCP 分配的路由,并只让地址单独分配。

您还需要正确设置路由配置,我认为您试图使配置过于复杂。

尝试在您的 netplan 配置中使用此配置:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true
      routes:
       - to: 0.0.0.0/0
         via: 192.168.0.1
         table: 1000
      routing-policy:
       - from: 192.168.0.0/24
         table: 1000
      nameservers:
        addresses: [192.168.0.10,192.168.0.20,8.8.8.8,8.8.4.4]
    eth1:
      dhcp4: true
      dhcp4-overrides:
        use-routes: false
      routes:
       - to: 0.0.0.0/0
         via: 192.168.1.1
         table: 1001
      routing-policy:
       - from: 192.168.1.0/24
         table: 1001
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]
    eth2:
      dhcp4: true
      dhcp4-overrides:
        use-routes: false
      routes:
       - to: 0.0.0.0/0
         via: 192.168.2.1
         table: 1002
      routing-policy:
       - from: 192.168.2.0/24
         table: 1002
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]

不过,这其中也有一些假设,即 (1) 您的网络是 /24,(2) 您想要 DHCP 您的网络,但没有为其他两个接口定义网关(因此 eth0 是您的主接口,而 eth1 和 eth2 只是位于另一个网络上,但不是主网关),以及 (3) 您实际上正在使用 Netplan。

相关内容