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

AWS - Access instances inside private subnets through wireguard instance inside public subnet

我是 Whosebug 的新手,如果我需要编辑此 post 以使其更清楚,请告诉我。

Objective:通过位于 public 子网内的 wireguard vpn 通过私有子网内的 HTTP/HTTPS Web 应用程序实例访问(这些子网都是在同一 VPC 内)。

情况:

我有一个 VPC:

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

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

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

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

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

  1. 确保 WireGuard 客户端配置中的 AllowedIPs 设置包括您的私有子网(如果整个 VPC 的 IPv4 CIDR 块是 10.0.0.0/16,这可能是您想要设置客户端的 AllowedIPs到)
  2. 确保 Web 应用程序的安全组允许来自 WireGuard 服务器安全组的入站访问 Web 应用程序使用的端口范围(可能是 TCP 端口 80443
  3. 确保 WireGuard 服务器的安全组允许对 Web 应用程序进行出站访问——默认出站规则允许一切,这很好——但如果您自定义了出站规则,请确保它们允许访问Web 应用程序使用的端口范围内的 Web 应用程序安全组(可能是 TCP 端口 80443
  4. 确保您的网络 ACL 没有阻止 public 和私有子网之间的流量——默认 ACL 允许一切,这也很好——但是如果您已经为您的子网自定义了 ACL ,您需要确保流量可以从 public 子网流向 Web 应用程序使用的端口范围内的私有子网(可能是 TCP 端口 80443),并从私有子网回到 OS 使用的临时端口范围上的 public 子网,WireGuard 服务器是 运行(TCP 1024-65535 是安全的)