创建远程隧道的最佳方法是什么?

创建远程隧道的最佳方法是什么?

我有 3 台 Linux 服务器:

  • 10.0.0.0/24 - (10.0.0.10) 我的 LAN 内的 Linux 服务器。
  • 20.0.0.0/24 - (20.0.0.10) 带有 HTTP Apache 服务器的 Linux 服务器
  • 50.50.50.50/32 - Amazon AWS 上的服务器,可同时看到 10.x 和 20.x LAN。

10.x 无法看到 20.x,20.x 无法看到 10.x
在 AWS 上设置 50.50.50.50 服务器以创建从 10.x 到 20.x 的隧道的最佳方法是什么(以及我该怎么做)

20.0.0.10 在“DMZ”LAN 上运行 HTTPd 服务器。我需要从 10.0.0.0/24 服务器查看 20.0.0.10:80。
2 个网络 10.x 和 20.x 位于同一 Cisco ASA 防火墙/路由器上,但​​由于许可证问题,我无法路由,因此我想通过可以看到 20.x 网络的外部服务器绕过此问题。我希望能够从 10.x 服务器访问 50.50.50.50:80 并查看 20.0.0.10:80 内容。

答案1

您在问题中描述了完全不同的情况。如果您只想通过 50.50.50.50:80 到达 20.x:80,那么您可以使用以下命令在 50.50.50.50 上配置端口转发iptables

target_ip="20.1.2.3"
source_ip="50.50.50.50"
iptables -t nat -A PREROUTING -s 10.0.0.0/8 -p tcp --dport 80 -j DNAT --to-destination 20.1.2.3
iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -d "$target_ip" -p tcp --dport 80 -j SNAT --to-source "$source_ip"
iptables -A FORWARD -s 10.0.0.0/8 -d "$target_ip" -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d 10.0.0.0/8 -s "$target_ip" -p tcp --sport 80 -j ACCEPT
echo 1 >/proc/sys/net/ipv4/ip_forward

如果 20.0.0.0/8 和 50.50.50.50 之间存在隧道,那么您可能必须设置$source_ip隧道接口 IP 地址。

相关内容