为什么服务器找不到 pihole.service.consul: NXDOMAIN,我该如何解决这个问题?

why server can't find pihole.service.consul: NXDOMAIN and how can I fix this?

我对 consul 进行了以下配置。

{
  "service": {
    "name": "pihole",
    "Address": "192.168.0.15",
    "tags": [
      "pi"
    ],
    "port": 8165,
    "check": {
      "args": [
        "curl",
        "192.168.0.15"
      ],
      "interval": "10s"
    }
  }
}

使用 dig 我现在没有错误,

$ dig @127.0.0.1 -p 8600 pihole.service.consul

; <<>> DiG 9.9.7-P3 <<>> @127.0.0.1 -p 8600 pihole.service.consul
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63573
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;pihole.service.consul.     IN  A

;; ANSWER SECTION:
pihole.service.consul.  0   IN  A   192.168.0.15

;; Query time: 0 msec
;; SERVER: 127.0.0.1#8600(127.0.0.1)
;; WHEN: Sun Aug 30 23:02:34 BST 2020
;; MSG SIZE  rcvd: 66

但是当我执行 nslookup 时,出现错误 server can't find pihole.service.consul: NXDOMAIN

$ nslookup pihole.service.consul
Server:     192.168.0.15
Address:    192.168.0.15#53

** server can't find pihole.service.consul: NXDOMAIN

我实际上在这个 ip 地址 192.168.0.15 有一个 pihole 运行 领事健康检查通过。

2020-08-30T23:10:58.707+0100 [DEBUG] agent: Check status updated: check=service:pihole status=passing

在命令 dig @127.0.0.1 -p 8600 pihole.service.consul 中,您明确指示 host 使用服务器 127.0.0.1 和端口 8600

Nslookup 默认使用 /etc/resolv.conf 文件中的名称服务器和端口 53。

你可以试试

nslookup pihole.service.consul 127.0.0.1 -port=8600