1

我想在 Bluemix Secure Gateway 中使用主机名而不是 IP 地址作为目标主机。我使用 docker 安全网关客户端。我试图通过编辑安装了 docker Secure Gateway Client 的主机操作系统的 /etc/hosts 并使用 --net=“host” 或 --add-host=hosname:IP 地址运行 SG 客户端来实现它。关于以下问答,安全网关服务似乎没有使用 DNS,所以我尝试使用 /etc/hosts。

如何解决 SG 客户端的 ENOTFOUND 错误

但我没能成功,SG Client 得到了 ENOTFOUND。你能教我如何制作安全网关客户端来解析目标主机的主机名吗?

[--net=“主机”的结果]

  • 我确认主机操作系统解析了主机名。

    #ping httpserver1 PING httpserver1 (192.168.56.1) 56(84) 个字节的数据。来自 httpserver1 (192.168.56.1) 的 64 个字节:icmp_seq=1 ttl=128 time=7.10 ms 来自 httpserver1 (192.168.56.1) 的 64 个字节:icmp_seq=2 ttl=128 time=6.89 ms

  • 我用 --net="host" 运行 SGClient

    # docker run -it ibmcom/secure-gateway-client XXXXXXXXXX --net=“host”<br> IBM Bluemix 安全网关客户端版本 1.2.1

    [2015-07-08 15:47:01.097] [INFO] 安全网关隧道已连接

  • SG 客户端收到 ENOTFOUND 错误

    #[2015-07-08 15:47:01.097] [INFO] 安全网关隧道已连接
    [2015-07-08 15:57:08.588] [INFO] 正在与 httpserver1:3000 建立连接 #3
    [2015- 07-08 15:57:16.602] [错误] 到目标 httpserver1:3000 的连接 #3 出现错误:ENOTFOUND
    [2015-07-08 15:57:16.603] [INFO] 到 httpserver1:3000 的连接 #3 已关闭

*SG 似乎支持关于 SG 文档的 --net=“host”,但似乎效果不佳。 https://www.ng.bluemix.net/docs/troubleshoot/SecureGateway/ts_index.html#ts_sg

[--add-host=httpserver1:192.168.56.1 的结果]

  • 我用 --add-host=httpserver1:192.168.56.1 运行 SGClient

    #docker run -it ibmcom/secure-gateway-client XXXXXXXXXX --add-host="httpserver1:192 .168.56.1" IBM Bluemix 安全网关客户端版本 1.2.1 [2015-07-08 16:09:20.028] [ INFO] 安全网关隧道已连接

  • SG 客户端收到 ENOTFOUND 错误

    [2015-07-08 16:09:37.214] [INFO] 正在与 httpserver1:3000 建立连接 #5 [2015-07-08 16:09:45.231] [错误] 到目标 httpserver1:3000 的连接 #5 有错误:ENOTFOUND [2015-07-08 16:09:45.232] [INFO] 到 httpserver1:3000 的连接 #5 已关闭

4

1 回答 1

0

我认为让这个在本地工作的唯一方法是让您的内部 IT 小组将该主机的名称添加到 DNS。请记住,/etc/hosts 文件的更新在范围内是本地的,没有其他机器会使用该信息将您的主机名解析为该 IP。在这种情况下,您要求 Bluemix 中的 Secure Gateway 服务器查找您在自己的 C/D 类子网中本地定义的内容,如果不更改 DNS,它就无法做到这一点。

另一种选择是尝试使用 docker '--dns ' 参数,提供可访问的 DNS 的 IP 地址。

于 2015-07-09T12:01:52.693 回答