Consul 启动命令 .\consul.exe agent -dev -ui --client=0.0.0.0 -dns-port=53
服务正常跑起ui也可访问。
wsl 中执行的命令
dig @172.17.208.1 -p 53 consul.service.dc1.consul.
; <<>> DiG 9.18.1-1ubuntu1.2-Ubuntu <<>> @172.17.208.1 -p 53 consul.service.dc1.consul.
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11446
;; flags: qr rd ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;consul.service.dc1.consul. IN A
;; ANSWER SECTION:
consul.service.dc1.consul. 0 IN A 28.0.0.46
;; Query time: 30 msec
;; SERVER: 172.17.208.1#53(172.17.208.1) (UDP)
;; WHEN: Thu Apr 06 11:44:57 CST 2023
;; MSG SIZE rcvd: 84
172.17.208.1 是宿主的ip其他端口的服务是能够访问的,但是dig命令的返回好像不是正确。是哪个操作步骤出现了问题?
你提到的 “dig命令的返回好像不是正确”,我猜测可能是对返回的 IP 地址(28.0.0.46)有疑问。Consul 使用特殊的 IP 地址范围(默认为 28.0.0.0/16)来表示服务地址。这些地址是虚拟的,用于在内部进行服务发现。当 Consul DNS 解析请求时,它会返回这些虚拟地址,而不是实际的节点 IP 地址。当您的应用程序使用这些虚拟地址进行通信时,Consul 会将请求透明地代理到相应的服务实例。
如果你需要获取实际的服务 IP 地址,可以使用 Consul 的 HTTP API 查询服务实例。例如,你可以使用以下命令查询 Consul 服务的实例: