如何使Secure Gateway Clientparsing目标主机的主机名

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

如何解决SG客户端ENOTFOUND错误

但是我不能成功,SG客户得到了ENOTFOUND。 您可以教我如何使Secure Gateway Clientparsing目标主机的主机名。

[–net =“host”的结果]

  • 我确认主机osparsing主机名。

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

  • 我运行SGClient –net =“host”

    #docker run -it ibmcom / secure-gateway-client XXXXXXXXXX –net =“host”
    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]连接#3正在build立到httpserver1:3000
    [2015-07-08 15:57:16.602] [错误]到目标httpserver1:3000的连接#3有错误:ENOTFOUND
    [2015-07-08 15:57:16.603] [INFO]关于httpserver1:3000的连接#3已closures

SG似乎支持–net =“host”关于SG文档,但似乎不太好。 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 Secure Gateway客户端版本1.2.1 [2015-07-08 16:09:20.028] [信息]安全网关隧道已连接

  • SG客户端出现ENOTFOUND错误

    [2015-07-08 16:09:37.214] [INFO]连接#5正在build立到httpserver1:3000 [2015-07-08 16:09:45.231] [错误]到目标httpserver1:3000的连接#5出错:ENOTFOUND [2015-07-08 16:09:45.232] [信息]连接#5 httpserver1:3000已closures

我认为让本地工作的唯一方法是让你的内部IT部门把这个主机的名字加到DNS上。 记住/ etc / hosts文件的更新在本地范围内,其他机器不会使用该信息将您的主机名parsing为该IP。 在这种情况下,您要求Bluemix中的Secure Gateway服务器find您在本级C / D子网中本地定义的内容,但是如果没有DNS更改,则无法完成这项工作。

另一种方法是尝试使用docker的“–dns”参数,提供可访问的DNS的IP地址。