Google 云,通过 ssh 卷曲为监听端口的服务提供“连接被拒绝”

Google cloud, curl through ssh gives `Connection refused` for service listening on port

我正在尝试从 ssh 终端连接到 google 云平台虚拟机上的服务 运行。

运行 进程正在侦听 7076,如下所示:

ced@instance-1:~$ sudo ss -ltn
State        Recv-Q       Send-Q             Local Address:Port              Peer Address:Port       Process       
LISTEN       0            4096               127.0.0.53%lo:53                     0.0.0.0:*                        
LISTEN       0            128                      0.0.0.0:22                     0.0.0.0:*                        
LISTEN       0            128                         [::]:22                        [::]:*                        
LISTEN       0            1024                       [::1]:7076                      [::]:*                    

我还有以下允许内部连接的防火墙规则:


Name                    Type     Targets      Filters                 Protocols/ports  
default-allow-internal  Ingress  Apply to all IP ranges: 10.128.0.0/9 tcp:0-65535, udp:0-65535

使用命令时:

    curl -X POST  --data '{"action": "benchmark"}'  localhost:7076

响应是:

    curl: (7) Failed to connect to localhost port 7076: Connection refused

据我了解:

所以我不明白为什么我无法连接。

正如 John Hanley 所说,您的应用程序正在侦听 IPv6,您可以使用称为“[::1]:7076”的本地地址和端口来识别。

The loopback address 0000:0000:0000:0000:0000:0000:0000:0001 is abbreviated to ::1.

运行 需要通过 curl 使用 IPv6,如下 manual 页面中所述。

  • -6: 此选项仅使用 IPv6 协议。
  • -g:此选项关闭“URL globbing 解析器”。当您设置此选项时,您可以指定包含字母 {}[] 的 URLs,而不会被 curl 本身解释。