AWS-通过公共子网内的wireguard实例访问私有子网内的实例

时间:2020-10-05 12:17:05

标签: amazon-web-services amazon-ec2 amazon-vpc wireguard

我是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配置问题还是路由表问题?)

2 个答案:

答案 0 :(得分:0)

您需要使用console和此document来允许HTTP / HTTPS端口(80/443)。 您输入安全组和传入规则

PS:如果可以通过ssh进行访问,则意味着SSH(端口22)已在计算机的安全组中得到授权。只需添加其他规则HTTPHTTPS

答案 1 :(得分:0)

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

  1. 确保您的 WireGuard 客户端配置中的 AllowedIPs 设置包括您的私有子网(如果整个 VPC 的 IPv4 CIDR 块是 10.0.0.0/16,这可能就是您想要设置客户端的 {{1} }} 到)
  2. 确保网络应用的安全组允许从 WireGuard 服务器的安全组在网络应用使用的端口范围(可能是 TCP 端口 AllowedIPs80)上进行入站访问
  3. 确保 WireGuard 服务器的安全组允许对 Web 应用程序的出站访问——默认出站规则允许所有内容,这很好——但如果您自定义了出站规则,请确保它们允许对 Web 应用程序的访问Web 应用使用的端口范围上的安全组(可能是 TCP 端口 44380
  4. 确保您的网络 ACL 不会阻止公共子网和私有子网之间的流量——默认 ACL 允许一切,这同样没问题——但如果您为子网自定义了 ACL,则需要确保流量可以从公共子网流到 Web 应用程序使用的端口范围上的私有子网(可能是 TCP 端口 44380),并从私有子网流回到临时网络上的公共子网WireGuard 服务器运行的操作系统使用的端口范围(TCP 443 是安全的)