尝试使用 sidecar 代理连接到网络时出现错误连接被拒绝

Cia*_*arz 2 proxy consul sidecar

我正在关注本教程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"
Run Code Online (Sandbox Code Playgroud)

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

{
  "service": {
    "name": "web",
    "connect": {
      "sidecar_service": {
        "proxy": {
          "upstreams": [
            {
              "destination_name": "socat",
              "local_bind_port": 9191
            }
          ]
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ian 5

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

"port": 8080,
Run Code Online (Sandbox Code Playgroud)

文档缺少该行。但这并不重要,因为没有任何东西在监听网络服务,所以错误将持续存在。您可以安全地忽略这一点。我怀疑你的问题是操作nc 127.0.0.1 9191失败。我在下面解决这个问题。

完整的配置应如下所示:

{
  "service": {
    "name": "web",
    "port": 8080,
    "connect": {
      "sidecar_service": {
        "proxy": {
          "upstreams": [
            {
              "destination_name": "socat",
              "local_bind_port": 9191
            }
          ]
        }
      }
    }
  }
}   
Run Code Online (Sandbox Code Playgroud)

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