代码之家  ›  专栏  ›  技术社区  ›  Hari N

无法连接到Google Compute Engine VM实例上运行的HTTP服务

  •  5
  • Hari N  · 技术社区  · 8 年前

    我有一个VM实例在f1微实例上运行COS版本“COS-dev-61-9733-0-0”。我已经配置了一个外部IP地址146.xxx.xxx。106并分配给此实例。我正在尝试从本地工作站测试到这个实例的HTTP连接,但到目前为止没有成功。

    enter image description here

    enter image description here

    我发现此处报告了一个类似的问题,但这无助于解决我的问题: Cannot access Google Cloud Compute Instance External IP 关于其他设置的任何建议 我的失踪将不胜感激。我查找了操作系统级防火墙设置,但找不到足够的Chromium操作系统文档。

    以下是我遵循的步骤:

    $sudo python-m SimpleHTTPServer 80

    在0.0.0.0端口80上提供HTTP。。。

    $sudo netstat-antup



    听638/sshd


    tcp 0.0.0.0:80 0.0.0.0:*
    听12750/python2.7

    $curl http://localhost:80 目录列表/

    目录列表/


    • .bash\u注销
    • .bashrc
    • .viminfo
    • 应用程序/

    从本地工作站:

    1. Ping外部IP地址并收到响应:

    $ping 146.xxx.xxx。106平146.xxx.xxx.106 icmp_seq=1 ttl=63时间=1131毫秒^ C

    1. SSH成功连接到实例:

    $nmap-Pn 146.xxx.xxx.106

    启动Nmap 6.47( http://nmap.org )2017-07-20 11:35 CDT Nmap 106.xxx.xxx.146.bc.googleusercontent.com的扫描报告 (146.xxx.xxx.106)主机启动(0.17s延迟)。未显示:999已过滤 端口端口状态服务22/tcp开放ssh

    Nmap完成:在86.74秒内扫描1个IP地址(1个主机启动)

    1 回复  |  直到 8 年前
        1
  •  6
  •   Tuxdude    8 年前

    这个 Container-optimized OS ssh

    除了配置Google Compute Engine防火墙规则以允许进入虚拟机的流量外,您还需要确保在虚拟机内运行的操作系统也允许。

    这在 docs for Container-Optimized OS

    Configuring the Host Firewall

    默认情况下,容器优化操作系统主机防火墙仅允许 SSH服务。在上接受传入连接 容器优化操作系统实例,您必须打开服务的端口 正在收听。

    例如,接受来自 在同一个计算引擎项目中,在两个 开发工作站,并在容器优化的操作系统实例上:

    # 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
    

    # On your Container-Optimized OS instance:
    sudo iptables -w -A INPUT -p tcp --dport 80 -j ACCEPT
    

    通常,建议您将主机防火墙配置为 systemd 服务通过 cloud-init .