首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >领事Java DNS SRV查找

领事Java DNS SRV查找
EN

Stack Overflow用户
提问于 2016-08-25 10:04:33
回答 1查看 1.3K关注 0票数 0

我正在尝试使用Consul从运行在默认Debian服务器上的Java应用程序中使用spotify的dnsjava进行服务发现

我知道DNS在端口8600上监听查询(https://www.consul.io/docs/agent/dns.html)。

但是DNS默认监听端口53,因此需要将查询转发给领事。我使用IPTables进行了转发,但我不知道这是否是正确的方法。使用dig确实有效,但我不知道副作用可能是什么。作为一个应用程序开发人员,我不一定能够更新iptables并安装其他软件包

我有一项叫洗礼的服务

代码语言:javascript
复制
sudo apt-get install dnsutils

sudo iptables -t nat -A PREROUTING -p udp -m udp --dport 53 -j REDIRECT --to-ports 8600

sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 8600

sudo iptables -t nat -A OUTPUT -d localhost -p udp -m udp --dport 53 -j REDIRECT --to-ports 8600

sudo iptables -t nat -A OUTPUT -d localhost -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 8600

dig @127.0.0.1 -p 8600 bapi.service.consul. SRV

dig @127.0.0.1 -p 8600 bapi-stub-node.node.consul. ANY

dig @127.0.0.1 -p 53 bapi.service.consul. SRV

dig @127.0.0.1 -p 53 bapi-stub-node.node.consul. ANY

这个应用程序试图从Java应用程序中查找DNS,但它不起作用,我不知道为什么

https://github.com/tonymurphy/srv-discovery

我知道Spring有集成和服务发现,但我不想要它带来的所有包袱,而且它似乎确实使用http进行服务查找。

EN

回答 1

Stack Overflow用户

发布于 2016-08-25 18:45:59

有两种方法:

  1. 使用端口转发,如ip表(您使用的)、dnsmasq等。例如,使用debian包管理器安装dnsmasq将是:apt-get install dnsmasq,然后是:echo "server=/consul/127.0.0.1#8600" > /etc/dnsmasq.d/10-consul
  2. 让领事使用port.dns配置(https://www.consul.io/docs/agent/options.html)监听端口53

我更喜欢进行端口转发,因为监听低端口需要root权限,授予领事根权限可能不是一个好主意。另一方面,安装dnsmasq或其他解决方案只是系统的另一个依赖项。

无论如何,您必须在两者之间进行选择,这两种方法都需要root权限(请系统管理员支持您)。

你可以在这里读到所有关于它的内容:https://www.consul.io/docs/guides/forwarding.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39142280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档