使用 IP 和 headers 请求不同的网站

使用 IP 和 headers 请求不同的网站

是否有可能在不依赖 DNS 记录的情况下从 Web 服务器引诱网站?Windows IIS WebServer 使用标头,Linux 使用虚拟服务器名称等。

想象一下这种情况:

  • 服务器 (linux + apache) 可通过其自己的 IP (123.45.67.89) 从互联网直接访问。默认页面如下:“它正在运行!”
  • 在Apache(httpd)中设置虚拟服务器如下:服务器名称:www.site.net,监听任何地址的默认端口。
  • 我没有像这样的 DNS 记录:www.stie.net - M -> 123.45.67.89
  • 我没有设置自己的 DNS 服务器并且不想在不同的端口上路由站点。

我如何仅通过 IP 地址和已知托管站点名称来访问存储的网站?

答案1

编辑本地主机文件。

在 Linux 中它处于:

/etc/hosts

对于 Windows 来说应该是

%SystemRoot%\system32\drivers\etc\

检查参考维基百科页面来查找您的。

这将作为您的开发工作站的本地 DNS,当您想要注释某行时,请在行前添加 #(当 DNS 处于活动状态时)。

编辑:当然,你可以为同一个 IP 设置多个名称,例如:

192.168.0.1 foo.bar.com foobar.nenet.com

或者这样:

192.168.0.1 foo.bar.com 
192.168.0.1 foobar.nenet.com

答案2

检查域名管理系统程序,可以用作有效的本地 DNS 缓存。

Dnsmasq 是一个轻量级、易于配置的 DNS 转发器和 DHCP 服务器。

...

Dnsmasq 提供以下功能:

  • 防火墙后面的机器的 DNS 配置很简单,不依赖于 ISP 的 DNS 服务器的详细信息

...

你可以找到一个关于如何使用 dnsmasq 作为本地 DNS 缓存的优秀教程这里

答案3

我建议不要更改 /etc/hosts 或设置本地 DNS 服务器。否则
您将遇到缓存问题、忘记禁用它等。使用 curl:

curl -H"主机:www.site.net"http://123.45.67.89

或者,如果您想查看呈现的内容,请使用 Firefox 插件(http://livehttpheaders.mozdev.org/)。Livehttpheaders
允许您更改任何标头并“重播”它们。
更改 Host 标头,它会执行您想要的操作。

答案4

据我了解,您想在浏览器中输入 IP 地址并访问在那里运行的 Web 服务器(例如http://123.123.123.123/)。

如果是这样——是的,您可以这样做,但显然每个 IP:端口组合只有一个站点。

我无法真正告诉你如何在 Apache 上做到这一点(没有太多配置经验),但是Microsoft IIS 7.x可以这样做:

1) 选择站点条目并出现“站点绑定”对话框。

2)类型、IP 地址和端口号——选择所需设置;主机名——留着空白

3) 保存设置并尝试结果。如果不行,那么你一定是做错了什么(或者这种绑定已经存在)。

Microsoft IIS 6 可以以类似的方式进行配置——只是要按的路径/按钮不同。

相关内容