我在运行 Debian 5.0 的同一个子网上有 2 台机器。它们使用相同的 DNS (/etc/resolv.conf),它们路由到相同的网关 (#route) 并且它们具有相同的 iptables 设置 (#iptables -L)。我可以从它们两个 ping 到 IP 地址和主机名。我可以运行 #host www.google.com 并在两者上获得相同的结果。但问题是,在其中之一上,我无法 wget 或 curl。
所以在机器 1 上一切正常,但在机器 2 上(与机器 1 具有相同的设置)我无法 wget 或 curl。
我得到的错误是:
# wget google.com
--2009-10-20 16:38:36-- http://google.com/
Resolving google.com... failed: Name or service not known.
wget: unable to resolve host address `google.com'
Run Code Online (Sandbox Code Playgroud)
但是在机器 1 上,wget 或 curl 没有问题并返回:
# wget google.com
--2009-10-20 16:43:55-- http://google.com/
Resolving google.com... 74.125.53.100, 74.125.45.100, 74.125.67.100
Connecting to google.com|74.125.53.100|:80... connected.
HTTP request sent, …Run Code Online (Sandbox Code Playgroud) 服务器运行良好,但当我执行 RDC 屏幕时,屏幕仅为黑色。这之前发生过,我通过 KVM/IP 关闭服务器电源来修复它,但我不想再这样做了。我该如何解决这个问题。
操作系统:Windows Server 2008 R2 网络版 SP1
导致我尝试取消此过程的具体查询是:
assets.example.com如果父域example.com已经被解析,DNS 查找子域(例如 )是否会更快?
以我(幼稚)的理解,将域名转换为 IP 地址的基本过程非常简单。十三根服务器,谁知道如何解决像顶级域的地址com和net,有效很难在网络硬件编码。在查找 的情况下example.com,我们的本地 DNS 服务器(可能是我们的路由器)会查询这些根服务器中的其中一台以查找相关域,并被称为 的顶级名称服务器com。然后它会询问此名称服务器是否知道如何解析example. 如果是,我们就完成了,如果不是,我们就被转介到另一台服务器上。这个过程中的一些服务器可能正在缓存,所以我们的本地路由器现在可以临时知道在哪里寻找com和example。
尽管如此,我还是不太明白。
com我们所指的TLD 名称服务器不知道如何解析example,那么说这就是行尾是否正确:example.com无法解析?维基百科解释说,一些 DNS 服务器将缓存与递归查询实现相结合,这使它们能够提供缓存命中并可靠地解决缓存未命中。我不明白这些服务器是如何被查询的,或者解析算法是如何(甚至广泛地)工作的。com例如,所有权威名称服务器都是精确镜像,还是解析器必须依次尝试每个?
回顾我最初的问题,假设 A 记录都在同一个名称服务器上,我可能会非常投机性地选择“否”。我将非常感谢任何可以减少我的无知的人!
我正在使用 AWS Elasticache 服务器example.foo.euw1.cache.amazonaws.com我希望 nginx 能够在位置指令中使用它(这只是一个简单的例子):
location /cached {
set $memcached_key $uri;
memcached_pass example.foo.euw1.cache.amazonaws.com:11211;
try_files $uri =404;
}
Run Code Online (Sandbox Code Playgroud)
因为 Elasticache 节点 IP 地址可以更改,所以我不想使用 example.foo.euw1.cache.amazonaws.com 的当前 IP 地址。
我resolver应该使用什么IP 来获取 AWS 内部 IP 地址 (10.x) 而不是面向公众的版本 (79.x)?
在运行 nginx 的机器上,我可以通过以下host调用来模拟:
$ host example.foo.euw1.cache.amazonaws.com
$ 10.120.40.80
$ # ^^^ that's the correct internal address I want to use
$
$ host example.foo.euw1.cache.amazonaws.com 8.8.4.4
$ 79.125.100.150
$ # ^^^ that's the public IP that I don't want …Run Code Online (Sandbox Code Playgroud) 我看到了这个CNAME记录的例子,但是不知道会返回什么IP,也找不到答案。
我正在寻找的 IPpc2.an.example.com和邮件服务器an.example.com
区域文件example.com:
example.com. IN SOA...
example.com. 1800 IN NS ns1.example.com
an.example.com. 1800 IN NS ns1.an.example.com
ns1.example.com. 1800 IN A 12.34.56.78
ns1.an.example.com. 1800 IN A 123.45.67.1
Run Code Online (Sandbox Code Playgroud)
区域文件an.example.com:
an.example.com. IN SOA...
an.example.com. IN NS ns1.an.example.com
ns1.an.example.com. 1800 IN A 123.45.67.1
an.example.com. MX 10 pc2.an.example.com
pc1.an.example.com. 1800 IN A 123.45.67.2
pc2.an.example.com 1800 IN A 23.45.67.89
pc2 CNAME pc1.an.example.com.
Run Code Online (Sandbox Code Playgroud)
那么哪些 IP 将返回给pc2邮件服务器?我的第一个想法是 CNAME 将被忽略,因为pc2它有一个完整 IP 的“A”记录,但我注意到末尾没有点pc2.an.example.com,也许这有影响,因为地址是相对的?
谢谢你的帮助!
在端口 8080 上安装了 nginx 和 Apache。问题是:我正在为生产域构建站点(假设为mysite.com)并为该域配置了所有内容。在安装 nginx 之前,我更改了 Windows 主机文件以将mysite.com重定向到服务器的 IP,效果很好。Nginx 自行解析域名并且(显然)无法解析域名mysite.com
日志说:
2012/02/07 07:35:29 [error] 11758#0: *1 mysite.com could not be resolved (110: Operation timed out), client: 89.112.11.xx, server: myssite.com, request: "GET / HTTP/1.1", host: "mysite.com"
Run Code Online (Sandbox Code Playgroud)
好吧,然后我尝试更改服务器上的主机文件。我在/etc/hosts 中做了这件事:
127.0.0.1 mysite.com
Run Code Online (Sandbox Code Playgroud)
好吧,我们试试吧!如果这生效了,至少 wget 应该发现它是正确的,对吧?就我在第 8080 端口上有 Apache 而言,我可以获取主页:
wget mysite.com
Run Code Online (Sandbox Code Playgroud)
它会下载正确的页面。这意味着 /etc/hosts 表现良好。
但ngnix还是没有解决!即使我重新启动服务器后也是如此。为什么?它有自己的解析器还是什么?如何让它发挥作用?
我有一个我想获得的 .ly 域 - 但我担心的是初始解析需要比简单的 .com 域更长的时间(例如,当客户查看我的网站时)。或者它只是在国内名称服务器上复制,并没有关系?
resolve ×7
domain ×2
nginx ×2
cname-record ×1
debian ×1
gnu-screen ×1
ip ×1
linux ×1
mx-record ×1
nameserver ×1
networking ×1
rdc ×1
subdomain ×1
wget ×1