Har*_*i N 5 connectivity google-compute-engine
我有一个在 f1-micro 实例上运行 COS 版本“cos-dev-61-9733-0-0”的 VM 实例。我已经配置了一个外部 IP 地址 146.xxx.xxx.106 并分配给这个实例。我正在尝试从我的本地工作站测试到此实例的 HTTP 连接,但到目前为止没有成功。
我在“防火墙”下启用了“允许 HTTP 流量”和“允许 HTTPS 流量”设置,即使它们在我保存后没有显示选中的框。然而,网络标签的值为“http-server, https-server”,如下所示:
我还确认“网络 > 防火墙设置”有一个默认的 HTTP 规则,如下所示:
我发现这里报告了一个类似的问题,但并没有帮助解决我的问题:无法访问 Google Cloud Compute Instance External IP。任何有关我缺少的其他设置的建议将不胜感激。我查找了操作系统级别的防火墙设置,但找不到足够的 Chromium OS 文档。
以下是我遵循的步骤:
在 GCE 实例上:
$ sudo python -m SimpleHTTPServer 80
在 0.0.0.0 端口 80 上提供 HTTP ...
$ sudo netstat -antup
活动的 Internet 连接(服务器和已建立)
Proto Recv-Q Send-Q 本地地址外地址
状态PID/程序名称tcp 0 0 0.0.0.0:22 0.0.0.0:*
听 638/sshdtcp 0 0 0.0.0.0:5355 0.0.0.0:*
LISTEN 613/systemd-resolvetcp 0 0 0.0.0.0:80 0.0.0.0:*
听 12750/python2.7
运行 curl 命令并得到以下响应:
$ curl http://localhost:80 / 的目录列表
目录列表 /
- .bash_history
- .bash_logout
- .bash_profile
- .bashrc
- .泊坞窗/
- .ssh/
- .viminfo
- 应用/
从本地工作站:
$ ping 146.xxx.xxx.106 PING 146.xxx.xxx.106 (146.xxx.xxx.106) 56(84) 字节数据。来自 146.xxx.xxx.106 的 64 字节:icmp_seq=1 ttl=63 time=1131 ms ^C --- 146.xxx.xxx.106 ping 统计 --- 3 个数据包传输,3 个接收,0% 数据包丢失,时间 2007ms
$ ssh 146.xxx.xxx.106 debianuser@cos-dev-61-dockervm1 ~ $
$ nmap -Pn 146.xxx.xxx.106
从2017-07-20 11:35 CDT Nmap 扫描报告 106.xxx.xxx.146.bc.googleusercontent.com (146.xxx.xxx.106)开始 Nmap 6.47 ( http://nmap.org ) 主机是向上(0.17 秒延迟)。未显示:999 个过滤端口 PORT STATE SERVICE 22/tcp open ssh
Nmap 完成:在 86.74 秒内扫描了 1 个 IP 地址(1 个主机启动)
所述集装箱优化OS图像在操作系统级别已启用防火墙来阻止所有传入通信(除ssh)。默认情况下只允许传出流量。
除了配置 Google Compute Engine 防火墙规则以允许传入 VM 的流量之外,您还需要确保在 VM 中运行的操作系统也允许它。
这在Container-Optimized OS的文档中提到
配置主机防火墙
默认情况下,Container-Optimized OS 主机防火墙仅允许传出连接,并仅接受通过 SSH 服务传入的连接。要接受 Container-Optimized OS 实例上的传入连接,您必须打开您的服务正在侦听的端口。
例如,要接受来自同一 Compute Engine 项目中其他实例的连接,请在您的开发工作站和 Container-Optimized OS 实例上运行以下命令:
Run Code Online (Sandbox Code Playgroud)# On your workstation: SUBNETWORK_URI=$(gcloud compute instances describe ${COS_INSTANCE_NAME} | grep -w 'subnetwork:' | awk '{ print $2 }') SUBNET_PREFIX=$(gcloud compute networks subnets describe ${SUBNETWORK_URI} | grep -w 'ipCidrRange:' | awk '{ print $2 }') # On your Container-Optimized OS instance: sudo iptables -w -A INPUT -p tcp -s ${SUBNET_PREFIX} -j ACCEPT sudo iptables -w -A INPUT -p udp -s ${SUBNET_PREFIX} -j ACCEPT As another example, if you need to accept HTTP (port 80) connections from any source IP address, run the following commands on您的 Container-Optimzied OS 实例:
Run Code Online (Sandbox Code Playgroud)# On your Container-Optimized OS instance: sudo iptables -w -A INPUT -p tcp --dport 80 -j ACCEPT一般情况下,建议您
systemd通过将主机防火墙配置为 服务cloud-init。
| 归档时间: |
|
| 查看次数: |
2270 次 |
| 最近记录: |