AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 745389
Accepted
Jarmund
Jarmund
Asked: 2015-12-27 17:29:48 +0800 CST2015-12-27 17:29:48 +0800 CST 2015-12-27 17:29:48 +0800 CST

测试服务器服务特定域的能力

  • 772

假设你已经Server A设置了你最喜欢的 webserver-daemon 来服务www.example.com. 现在你想把它移到Server B. 经过大量的复制和配置,新服务器似乎已经准备就绪。www.example.com最后的测试是有序的:在更改 DNS 记录之前,当 DNS 记录仍然指向服务器 A 时,如何向服务器 B 请求?


虽然我的主要问题已经得到解答,但如果 /etc/hosts 不在我的影响范围内,是否可以通过将原始 HTTP1.1 与网络服务器交谈来使用 telnet 对其进行测试?

domain-name-system
  • 5 5 个回答
  • 15700 Views

5 个回答

  • Voted
  1. Best Answer
    Wesley
    2015-12-27T17:37:30+08:002015-12-27T17:37:30+08:00

    DNS是一个神奇的东西。通过对客户端 PC 的足够控制,您可以right.com制作wrong.com和viceversa.io. 跳转到测试客户端 PC 并通过更改该客户端上的主机文件来处理其 DNS 解析,或者您可以做一些更复杂的事情并为该主机提供一个简单的 DNS 服务器来查询,例如dnsmasq. 无论您采用哪种方式,最终目标都是为www.example.com与服务器 B 的 IP 地址响应有关的查询做出 DNS 响应。然后,HTTP 主机标头将带有 www.example.com 的 DNS 名称,但针对服务器 B。

    魔法!

    • 12
  2. Håkan Lindqvist
    2015-12-28T09:19:19+08:002015-12-28T09:19:19+08:00

    重要的是要注意,对 HTTP 进行这样的测试并不真正与 DNS 相关,而是 HTTP 客户端作为Host标头值发送的内容。

    显然,客户端需要连接到正确的 IP 地址和端口,但除此之外,这一切都归结为HostHTTP 请求本身内联的标头。


    为了快速测试,可以使用以下命令,而无需更改客户端上的任何操作系统级别配置:

    $ curl -H "Host: www.example.com" http://192.0.2.17/foo/bar
    

    或者,就此而言,

    $ curl -H "Host: www.example.com" http://beta.example.com/foo/bar
    


    要对常规 Web 浏览器执行相同操作,您需要一个可以修改请求标头的浏览器扩展(或者可能需要一个更改标头的 HTTP 代理),或者您需要更改客户端计算机操作系统的配置。

    如前所述,进行此类配置更改的最简单方法是在hosts文件中添加一个条目。这样,客户端操作系统解析器库在查询hosts文件时就会受到打击,甚至不需要进行 DNS 查找。

    其他选项包括将客户端上配置的 DNS 解析器服务器更改为设置为根据需要进行应答的名称服务器。

    • 11
  3. briantist
    2015-12-27T18:22:05+08:002015-12-27T18:22:05+08:00

    您可以使用telnet. 您需要通过键入命令来发出原始 HTTP 请求。您不能犯任何错误,并且某些服务器会超时,因此您还必须在该时间范围内键入整个请求。

    该命令将是这样的:

    telnet serverb 80
    

    该请求将如下所示:

    GET / HTTP/1.1
    Host: www.example.com
    

    请注意,它必须以空行结尾,因此您需要在主机标题后按两次 Enter。

    • 4
  4. Law29
    2015-12-27T17:44:07+08:002015-12-27T17:44:07+08:00

    我通常做的是强制 www.example.com 到我的 /etc/hosts 中的服务器 B IP 地址。自从我使用 Mosaic 以来,我一直在这样做,而且因为我不经常这样做,所以我觉得没有必要找到更好的方法。

    环顾四周,我发现https://superuser.com/questions/403042/custom-host-file-for-firefox由https://addons.mozilla.org/es/firefox/addon/回答foxyproxy-standard/但最近有一个说明说它已被放弃。

    • 3
  5. bukk530
    2015-12-28T20:44:50+08:002015-12-28T20:44:50+08:00

    如果你需要检查它是否有效,我建议使用一个简单的浏览器插件,比如Modify HeadersFirefox,然后HOST将www.mydomain.com.

    • 3

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve