首页 文章

绑定外部IP - 谷歌 Cloud 引擎

提问于
浏览
3

我在Ubuntu 16.04上运行了一个Google Compute Engine,我想在其中启动node.js Websocket Server . 每当我尝试开始监听外部IP时,我都会收到错误:“无法分配请求的地址” . 它适用于我的内部IP或127.0.0.1,但我无法从外部访问它 .

我已经创建了所有必要的防火墙规则 .

我运行ifconfig时看不到外部IP . 这是一个问题吗?如果是这样,我怎么能解决这个问题?我已经尝试设置一个新实例 .

并且没有其他进程在该端口上进行侦听 .

1 回答

  • 1

    我猜你明确绑定到外部IP?您可以尝试省略host参数,该参数有效地绑定到所有接口,包括内部IP和外部IP:NodeJs: server.listen(port[, hostname][, backlog][, callback])

    如果在VM上运行 ifconfig ,您会发现外部IP不存在 . 我相信外部IP是计算引擎中的虚拟IP,底层网络基础设施会自动将其转换为内部IP .

    $ ifconfig
    eth0      Link encap:Ethernet  HWaddr 42:01:0a:80:00:02  
              inet addr:10.128.0.2  Bcast:10.128.0.2  Mask:255.255.255.255
              inet6 addr: fe80::4001:aff:fe80:2/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1460  Metric:1
              RX packets:1979 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1363 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:252712 (252.7 KB)  TX bytes:182530 (182.5 KB)
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1 
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    

相关问题