今天,我尝试使用Google Cloud Platform制作博客。
所以,我制作了一个计算机引擎实例并在Ubuntu 16上安装了Apache2。
然后,点击外部IP地址,但它显示我"连接被拒绝.."
为什么会这样?
我也允许HTTPS%HTTP流量。
我无法找到像AWS的安全组那样的菜单......
所以,这个问题让我感到恼火......
(我不是英国人,所以文档很难阅读..请给我一个提示:
答案 0 :(得分:4)
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
包,我在这里分享的说明将指导你如何在你的虚拟机上打开端口80
并通过虚拟机的公共IP访问它。您可以根据需要为任何其他端口执行相同的操作。
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
tcp:80
的入口流量进入您的VM Menu -> Networking -> Firewall Rules
Create Firewall Rule
为防火墙规则选择以下设置:
Name
用于规则 - rule-allow-tcp-80
或您喜欢此防火墙规则的任何其他名称。Direction
是ingress
Action on match
是Allow
Targets
是Specified target tags
Target tags
是allow-tcp-80
Source IP ranges
是0.0.0.0/0
(或者,如果您知道一组IP范围是唯一访问此范围的IP范围,请使用它们代替更强的限制)Protocols and ports
是tcp:80
Create
按钮以创建此防火墙规则。创建上述防火墙规则后,您需要将标记allow-tcp-80
添加到需要应用此规则的所有实例中。在你的情况下:
VM Instances
页面VM instance details
页面中,选择最顶部的Edit
链接。Network Tags
框中,输入allow-tcp-80
以将标记应用于此实例。Save
以保存更改。现在给它几分钟到几分钟的时间让更改生效,你就可以访问jenkins网址了。
您还可以浏览Firewall rules的文档,以便更好地了解它们的工作方式以及如何配置它们。
警告:通过使用0.0.0.0/0
的来源范围,您可以将VM上的端口打开到整个互联网。这使得世界上任何地方的客户端都可以连接到在此端口上运行的应用程序。充分意识到这样做的安全隐患。