[注意:这个问题的解决方案是完美的,与标题所暗示的有所不同。]
我正面临一个小问题Windows Server 2003 DNS service。在我的公司中,我正在运行 Microsoft DNS 服务器(172.16.0.12)来对我公司的内部网进行名称解析(域名以dev.nls. 解析为 IP 172.16. .结尾),并且它还被配置为 DNS 转发器以转发其他域名(例如 *.google.com , *.sf.net) 到Internet real DNS servers. 此内部 DNS 服务器从不倾向于为来自外部世界的用户提供服务。
而且,我们在公司防火墙内运行一个邮件服务器(为真实的Internet 域提供传入邮件@nlscan.com),可以通过以下任一方式访问:
172.16.0.10从内部网连接到。mail.nlscan.com(解析为202.101.116.9)。请注意,172.16.0.10和202.101.116.9不是同一台物理机。在202一个有防火墙的机器谁做端口的端口转发25,并110以内部网络地址172.16.0.10。
现在我的问题是:如果企业局域网内的用户想要解析mail.nlscan.com,则解析为202.101.116.9。这是正确且可行的,但不是很好,因为邮件流量进入防火墙机器然后反弹到172.16.0.10. 我希望我们internal DNS server可以拦截名称mail.nlscan.com并将其解析为 172.16.0.10 。所以,我希望我可以在“hosts”文件中写一个条目172.16.0.12来做到这一点。但是,如何 …
有没有办法/etc/hosts在每个用户的基础上(即在文件中)定义主机别名(如 in )/home/user/.hosts?
我的主要目标是通过 rsync 在我的小局域网中的机器之间轻松共享主机别名。由于没有任何机器可以始终可靠地连接,因此 DNS 服务器不是一种选择(对吗?)。
谢谢你。
如果我在主机文件中有以下条目:
192.168.100.1 bugs
192.168.100.2 daffy.example.com
192.168.100.3 elmer.example.com.
Run Code Online (Sandbox Code Playgroud)
本地实用程序的 IP-> 名称解析尝试(我假设使用“gethostbyaddr”或 Windows 等效项)会尊重这些条目吗?这种行为是可配置的吗?它在操作系统之间有何不同?“主机”文件条目是否完全合格是否重要?
编辑:响应 Russell,我的测试 Linux 系统正在运行 RHEL 4。我的 /etc/nsswitch.conf 包含以下“主机”行:
hosts: files dns nis
Run Code Online (Sandbox Code Playgroud)
如果我按名称 ping 任何主机(例如 bugs、daffy),则前向解析工作正常。如果我通过 IP 地址跟踪路由其中的任何一个,反向查找将按预期运行。但是,如果我通过 IP ping 它们,ping 似乎无法解析它们的主机名。我的理解是,除非另有指示,否则 Linux ping 将始终尝试将 IP 解析为名称。为什么 traceroute 能够处理主机文件中的反向查找,而 ping 不能?
我遇到了一个 DNS 解析问题,当在我的本地机器上浏览它时,它会影响我的本地托管网站的性能。如果我在浏览器中访问 URL 时将我的网络的 DNS 后缀附加到我的本地机器名称,则该站点的加载时间比没有 DNS 后缀的情况要糟糕(慢 100 倍以上)。
我想我可以通过使用我的主机文件来解决这个问题,以避免需要查找。我像这样在我的主机文件中添加了一个条目
127.0.0.1 myMachine.MyDnsSuffix
Run Code Online (Sandbox Code Playgroud)
但这并没有改变加载时间,即使在重新启动后也是如此。虽然解决这个特定问题并不重要,但我真的很想知道为什么会发生这种情况。
此外,当我在域上运行 nslookup 时myMachine.MyDnsSuffix,我注意到它使用我网络的 DNS 服务器来查找 IP。这可能与我的问题有关还是我只是误解了 nslookup 的工作原理?
租用专用服务器时,如何确定他/她没有获得 VPS 或其他虚拟机变体,而不是真正的专用硬件盒?
可以运行哪些检查(假设它是一个 linux 机器)来检测这种情况?
我需要在服务 www.myserver.com 的 centos 服务器上更改主机名
我需要在/etc/hosts,/etc/sysconfig/network和hostname命令中做什么?
在/etc/sysconfig/network我需要这样写:
HOSTNAME=www.myserver.com
Run Code Online (Sandbox Code Playgroud)
或这个 :
HOSTNAME=myserver.com
Run Code Online (Sandbox Code Playgroud)
在/etc/hosts我需要这样写:
XXX.XXX.XXX.XXX myserver.com
Run Code Online (Sandbox Code Playgroud)
或这个 :
XXX.XXX.XXX.XXX wwww.myserver.com www
Run Code Online (Sandbox Code Playgroud)
我需要做的sudo hostname www.myserver.com还是sudo hostname myserver.com?
非常感谢!
更新 :
我还需要设置有关主机名的其他内容吗?
当我启动第一个 WSL 终端(在我的例子中是 ubuntu 20.04 bash)时,WSL 会/etc/hosts根据我的 windows 系统的主机文件生成文件%WINDIR%\System32\drivers\etc\hosts。
如果我现在更改%WINDIR%\System32\drivers\etc\hosts,例如添加一些条目,/etc/hosts则不会更新我的 WSL 中的 。即使我关闭所有 WSL 终端并打开一个新终端。只有重新启动我的 Windows 系统才有帮助。
有没有办法可以手动触发更新,/etc/hosts这样我就不必重新启动?
我在这里面临一个小问题。我有一个长/etc/hosts文件。(在网络上工作,所以我在本地托管了很多站点以进行开发)。假设它大约有 40、50 行长。全部重定向到 127.0.0.1。
现在在检查 Chrome 的检查器时,由于 DNS 查找部分,我的本地网页似乎加载缓慢。在文件中mygreatwebsite.local也定义的url 上/etc/hosts。
快速检查后,似乎将hosts文件减少到几行,大大加快了 DNS 查找部分。所以我的问题是,是否有可能面对 50 行大约 5 秒的差异,而几行则是微不足道的时间?还是我完全错过了什么?
在您开始看到性能下降之前,有没有人碰巧知道 Linux 系统上 /etc/hosts 的理论大小限制是多少?
此外,任何人都可以指出一些官方消息来源,说明预期限制是什么?
我的 haproxy.cfg 文件有两个使用主机名的后端服务器:
server ops-ca-revealv2e-prod-1 ops-ca-revealv2e-prod-1:443 cookie ops-ca-revealv2e-prod-1 ssl weight 1 maxconn 512 check
server ops-ca-revealv2e-prod-2 ops-ca-revealv2e-prod-2:443 cookie ops-ca-revealv2e-prod-2 ssl weight 1 maxconn 512 check
Run Code Online (Sandbox Code Playgroud)
这些主机名是 Amazon OpsWorks 的一部分,并且会在实例启动或关闭时自动注入 /etc/hosts。如果我在其中一个实例关闭时尝试重新启动 HAProxy,则会收到错误消息:
[ALERT] 362/225440 (27202) : parsing [/opt/haproxy-ssl/haproxy.cfg:42] : 'server ops-ca-revealv2e-prod-2' : invalid address: 'ops-ca-revealv2e-prod-2' in 'ops-ca-revealv2e-prod-2:443'
[ALERT] 362/225440 (27202) : Error(s) found in configuration file : /opt/haproxy-ssl/haproxy.cfg
[ALERT] 362/225440 (27202) : Fatal errors found in configuration.
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉 HAProxy 检查主机名是否有效?如果有效,则使用它,如果无效,则忽略它。
hosts ×10
hostname ×2
linux ×2
windows ×2
apache-2.2 ×1
guest ×1
haproxy ×1
nslookup ×1
vps ×1
web-server ×1
windows-subsystem-for-linux ×1
windows-xp ×1