我正在尝试使用Consul从运行在默认Debian服务器上的Java应用程序中使用spotify的dnsjava进行服务发现
我知道DNS在端口8600上监听查询(https://www.consul.io/docs/agent/dns.html)。
但是DNS默认监听端口53,因此需要将查询转发给领事。我使用IPTables进行了转发,但我不知道这是否是正确的方法。使用dig确实有效,但我不知道副作用可能是什么。作为一个应用程序开发人员,我不一定能够更新iptables并安装其他软件包
我有一项叫洗礼的服务
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进行服务查找。
发布于 2016-08-25 18:45:59
有两种方法:
apt-get install dnsmasq,然后是:echo "server=/consul/127.0.0.1#8600" > /etc/dnsmasq.d/10-consul我更喜欢进行端口转发,因为监听低端口需要root权限,授予领事根权限可能不是一个好主意。另一方面,安装dnsmasq或其他解决方案只是系统的另一个依赖项。
无论如何,您必须在两者之间进行选择,这两种方法都需要root权限(请系统管理员支持您)。
你可以在这里读到所有关于它的内容:https://www.consul.io/docs/guides/forwarding.html
https://stackoverflow.com/questions/39142280
复制相似问题