1

我是 StackOverflow 的新手,如果我需要编辑这篇文章以使其更清晰,请告诉我。

目标:通过位于公共子网内的wireguard vpn通过私有子网内的HTTP / HTTPS Web应用程序实例进行访问(这些子网都在同一个VPC内)。

情况

我有一个 VPC:

  • 1 个公有子网,包含一个运行 wireguard VPN 的 ec2 实例
  • 4 个私有子网,分别包含运行单个 Web 应用程序的 ec2(基于 bitnami 图像)。wireguard 实例有自己的安全组,其他实例与 VPC 共享同一个安全组。公共子网中有一个 NAT 网关,所有来自私有子网的出站连接都路由到该 NAT。我已经设置了一个私有托管区域并添加了记录以将域名指向私有子网内的实例。(即 sub.test.com 指向 10.0.1.1 等)。我在wireguard ec2实例上启用了端口转发和未选中的“源/目标”。

结果:我可以通过 SSH 和wireguard 客户端连接到wireguard 实例,但无法访问私有子网内的Web 应用程序ec2。

问题:如何通过公有子网内的wireguard实例访问私有子网内的实例?(是wireguard配置问题还是路由表问题?)

4

2 回答 2

0

查看本教程,该教程介绍了如何使用 AWS 私有子网设置WireGuard的每个步骤——其中包含一些针对此类问题的故障排除建议。这里有四件事特别用于检查您是否在从 WireGuard 服务器访问私有子网中的应用程序时遇到问题:

  1. 确保AllowedIPs您的 WireGuard 客户端配置中的设置包括您的私有子网(如果您的整个 VPC 的 IPv4 CIDR 块是10.0.0.0/16,那可能就是您想要将客户端设置为的AllowedIPs
  2. 确保 Web 应用程序的安全组允许来自 WireGuard 服务器安全组在 Web 应用程序使用的端口范围内的入站访问(可能是 TCP 端口80443
  3. 确保 WireGuard 服务器的安全组允许对 Web 应用程序的出站访问 - 默认出站规则允许一切,这很好 - 但如果您自定义了出站规则,请确保它们允许访问 Web 应用程序安全组Web 应用程序使用的端口范围(可能是 TCP 端口80443
  4. 确保您的网络 ACL 不会阻止公共子网和私有子网之间的流量——默认 ACL 允许一切,这也很好——但是如果您为子网自定义了 ACL,则需要确保流量可以流动从公共子网到 Web 应用程序使用的端口范围上的私有子网(可能是 TCP端口80443TCP1024-65535是安全的)
于 2021-02-05T18:54:40.267 回答
0

您需要使用控制台和本文档允许 HTTP/HTTPS 端口 (80/443) 。您输入您的安全组和传入规则

PS:如果您可以通过 ssh 访问,则表示您的机器的安全组已经授权 SSH(端口 22)。只需添加其他规则HTTPHTTPS

于 2020-10-05T12:45:57.667 回答