尝试使用 sidecar 代理连接到 web 时获取错误连接被拒绝

Getting error connection refused when trying to consul connect using sidecar proxy to web

我正在学习本教程https://learn.hashicorp.com/consul/getting-started/connect

当我 运行 consul connect proxy -sidecar-for web 它开始抛出这个错误时:

2020-07-26T14:30:18.243+0100 [ERROR] proxy.inbound: failed to dial: error="dial tcp 127.0.0.1:0: connect: can't assign requested address"

为什么他的演示中没有分配端口?

{
  "service": {
    "name": "web",
    "connect": {
      "sidecar_service": {
        "proxy": {
          "upstreams": [
            {
              "destination_name": "socat",
              "local_bind_port": 9191
            }
          ]
        }
      }
    }
  }
}

教程中的视频将第四行显示为:

"port": 8080,

文档中缺少该行。但这并不重要,因为没有任何内容正在侦听 Web 服务,因此错误将持续存在。您可以放心地忽略它。我怀疑您的问题是 nc 127.0.0.1 9191 操作失败。我在下面解决这个问题。

完整配置应如下所示:

{
  "service": {
    "name": "web",
    "port": 8080,
    "connect": {
      "sidecar_service": {
        "proxy": {
          "upstreams": [
            {
              "destination_name": "socat",
              "local_bind_port": 9191
            }
          ]
        }
      }
    }
  }
}   

但是,这对于完成实验的这一部分并不重要。说明不清楚,但不要忘记重新启动网络代理 consul connect proxy -sidecar-for web 并启动 socat 代理 consul connect proxy -sidecar-for socat 说明和视频中严重缺少最后一部分。