【问题标题】:Google cloud Compute Engine refuse outer access through apache2谷歌云计算引擎拒绝通过 apache2 进行外部访问
【发布时间】:2020-03-14 02:39:43
【问题描述】:

今天尝试用谷歌云平台做博客。

所以,我制作了一个计算机引擎实例并在 Ubuntu 16 上安装了 Apache2。

然后,单击外部 IP 地址,但它显示“连接被拒绝..”

为什么会这样?

我也允许 HTTPS % HTTP 流量。

而且我找不到像 AWS 的安全组这样的菜单...

所以,这个问题让我很恼火……

(我不是英语母语,所以文档很难阅读。请给我一个提示)

【问题讨论】:

    标签: google-cloud-platform


    【解决方案1】:

    TL;DR - 您需要使用防火墙规则打开端口以允许进入您的虚拟机的流量。

    Google Compute Engine (GCE) blocks all traffic to your VMs by default 用于确保您的基础架构安全。您可以根据需要打开端口并自行管理安全性。默认创建的网络在允许来自网络中其他虚拟机的流量方面几乎没有例外,但仍然不允许来自网络外部的流量。

    Firewalls

    每个 VPC 网络都有自己的防火墙来控制对 实例。

    到实例的所有流量,甚至是来自其他实例的流量,都被 防火墙,除非创建防火墙规则以允许它。例外 是每个自动创建的默认 VPC 网络 项目。此网络有一定的自动创建default firewall rules

    对于除自动创建的default VPC 之外的所有 VPC 网络 网络,您必须创建所需的任何防火墙规则。允许 手动创建的 VPC 网络上的传入网络连接,您 需要设置防火墙规则以允许这些连接。每个 防火墙规则代表一个单一的规则,它决定什么 允许连接进入或离开实例。有可能的 有许多规则,并与这些规则一样笼统或具体 根据您的需要。例如,您可以创建一个防火墙规则,允许 通过端口 80 到所有实例的所有流量,或者您可以创建规则 只允许从一个特定 IP 或 IP 范围到一个 具体实例。

    防火墙规则是连接跟踪,因此只调节 初始连接。一旦与 例如,允许双向通行 连接。

    既然你在 Ubuntu 上说 apache2 包,我在这里分享的说明将指导你如何在你的 VM 上打开端口 80 并使其可以通过 VM 的公共 IP 访问。您可以根据需要对任何其他端口执行相同操作。

    Using gcloud 允许 tcp:80 的入口流量进入您的 VM

    # Create a new firewall rule that allows INGRESS tcp:80 with VMs containing tag 'allow-tcp-80'
    gcloud compute firewall-rules create rule-allow-tcp-80 --source-ranges 0.0.0.0/0 --target-tags allow-tcp-80 --allow tcp:80
    
    # Add the 'allow-tcp-80' tag to a VM named VM_NAME
    gcloud compute instances add-tags VM_NAME --tags allow-tcp-80
    
    # If you want to list all the GCE firewall rules
    gcloud compute firewall-rules list
    

    Using Cloud Console 允许 tcp:80 的入口流量进入您的 VM

    1. Menu -> Networking -> Firewall Rules
    2. Create Firewall Rule
    3. 为防火墙规则选择以下设置:

      1. Name 用于规则 - rule-allow-tcp-80 或您喜欢的任何其他名称用于此防火墙规则。
      2. Directioningress
      3. Action on matchAllow
      4. TargetsSpecified target tags
      5. Target tagsallow-tcp-80
      6. Source IP ranges0.0.0.0/0(或者,如果您有一组 IP 范围,您知道将是唯一可以访问它的,请使用它们来加强限制)
      7. Protocols and portstcp:80
      8. 选择Create 按钮以创建此防火墙规则。
    4. 创建上述防火墙规则后,您需要将标签allow-tcp-80 添加到需要应用此规则的所有实例中。在你的情况下:

      1. 打开 GCE VM Instances 页面
      2. 选择运行 Jenkins 的实例
      3. VM instance details 页面中,选择最顶部的Edit 链接。
      4. Network Tags 框中,输入allow-tcp-80 以将标记应用于此实例。
      5. 选择Save 保存更改。

    现在给它几秒钟到几分钟的时间让更改生效,您将能够访问 jenkins 网页 URL。

    您还可以浏览Firewall rules 的文档,以更好地了解它们的工作原理以及如何配置它们。

    警告:通过使用0.0.0.0/0 的源范围,您将VM 上的端口开放给整个互联网。这使世界上任何地方的客户端都可以连接到在此端口上运行的应用程序。请充分了解这样做的安全隐患。

    【讨论】:

      猜你喜欢
      • 2019-02-26
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 2019-05-27
      • 2015-03-04
      • 1970-01-01
      相关资源
      最近更新 更多