我为开发人员设置了一个“沙盒” Web 服务器。每个服务器都有自己的 IP,配置了所有“生产”主机名,并配置了 DNSmasq 以响应这些生产名称但返回自己的 IP,因为在电视或其他家电类型的设备上编辑“hosts”文件是不合理的。
我在服务器上运行了 8 个 dnsmasqd,其配置文件如下:
bind-interfaces
except-interface=lo
listen-address = 10.0.0.201
address=/www.mydomain.com/10.0.0.201
address=/ws.mydomain.com/10.0.0.201
address=/www.another.com/10.0.0.201
address=/ws.another.com/10.0.0.201
.. 每个配置文件都增加(10.0.0.202、10.0.0.203 等)
虽然这个部件对于电视来说运行完美,但是我无法从服务器本身对其进行测试,这让我有点抓狂。
[root@sf-devstore-01 sandboxes]# host www.mydomain.com 10.0.0.201
;; connection timed out; trying next origin
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached
它可以在同一网络上的其他主机上运行良好......
[root@sf-mon-01 ~]# host www.mydomain.com 10.0.0.201
Using domain server:
Name: 10.0.0.201
Address: 10.0.0.201#53
Aliases:
www.mydomain.com has address 10.0.0.201
该系统是网络上唯一具有 10.0.0.20x IP 地址的系统(我已验证 MAC 地址)。它正在监听并且接口处于“UP”状态(等等)。它可以在其他机器上运行,只是不能在本地系统上运行。
有什么建议么?
提前致谢,
汤米
答案1
风滚草……
因此,我在 Google 上搜索了一下,什么也没找到,但还是决定检查代码并自己编译看看会发生什么,结果发现它运行良好。
有趣...所以我检查了 CentOS 6.5 分发的相同版本的代码 (2.48),它再次正常工作。我相当确定它与“编译时选项”有关"--bind-interfaces with SO_BINDTODEVICE"
。我只是执行了不带任何选项的“make”,它工作正常。
[root@app src]# ./dnsmasq -qdC /etc/sandbox-dnsmasq.d/tmcneely.dns dnsmasq: started, version 2.48 cachesize 150 dnsmasq: compile time options: IPv6 GNU-getopt no-DBus no-I18N DHCP TFTP dnsmasq: reading /etc/resolv.conf dnsmasq: using nameserver 10.0.2.3#53 dnsmasq: read /etc/hosts - 2 addresses dnsmasq: query[A] www.shoptv.com from 10.250.251.201 dnsmasq: config www.shoptv.com is 10.250.251.201 dnsmasq: query[AAAA] www.shoptv.com from 10.250.251.201 dnsmasq: config www.shoptv.com is NODATA-IPv6 dnsmasq: query[MX] www.shoptv.com from 10.250.251.201 dnsmasq: config www.shoptv.com is NODATA
[root@app src]# /usr/sbin/dnsmasq -qdC /etc/sandbox-dnsmasq.d/tmcneely.dns dnsmasq: started, version 2.48 cachesize 150 dnsmasq: compile time options: IPv6 GNU-getopt DBus no-I18N DHCP TFTP "--bind-interfaces with SO_BINDTODEVICE" dnsmasq: reading /etc/resolv.conf dnsmasq: using nameserver 10.0.2.3#53 dnsmasq: read /etc/hosts - 2 addresses
答案2
我还通过降级到 dnsmasq-2.48-6.el6.x86_64.rpm(没有这个可爱的不可配置功能)解决了阻止程序问题。