我在 Google 上搜索过这个主题,但得到的搜索结果大多是如何解除 ISP 封锁的网站。因此,我有一个网站被观众封锁,当我访问我的域名时www.mydomain.com
,它会将所有用户重定向到,www.mydomain.com/blocked.aspx
并出现一条消息“该网站因违反国家法律而被封锁”。如果我将 DNS 更改为 Google DNS,则可以正常查看该网站。
我使用 WordPress 来托管此网站,我的问题是,ISP 如何将其他人重定向到另一个目录,例如/blocked.aspx
?我认为此文件在 Microsoft IIS 服务器而不是 Apache 服务器上运行。
我希望我能从技术上理解这一点。
答案1
从我读过的其他答案来看,感觉您是在专门询问您的 ISP 如何设法将“blocked.aspx”添加到您的域名末尾。如果是这样,让我们看一个案例研究:
您有一个正在运行的 Web 服务器http://mysite.mine/,公共、完全可信的 DNS 会将其解析为公共 IP 10.0.0.1。您可以浏览http://mysite.mine/index.aspx或 /about.aspx 或其他任何内容,因为您将其托管在您的服务器上。实际上,它实际上解析为http://10.0.0.1/about.aspx因为这就是 DNS 的作用——它将域名解析为 IP 地址。
你的 ISP 决定出于某种原因屏蔽你的网站,因此他们会重定向 DNS 请求http://mysite.mine/到公共 IP 192.168.0.1,即由您的 ISP 托管的 Web 服务器。因此,任何尝试访问http://mysite.mine/实际上会重定向到http://192.168.0.1/。一旦他们完成了这项工作,配置他们的网络服务器以重定向任何使用blocked.aspx访问该网络服务器的尝试就很简单了。您的浏览器显示http://mysite.mine/blocked.aspx,但实际上你正在访问http://192.168.0.1/block.aspx。
就你的浏览器而言,它会显示http://mysite.mine/,因为这是 DNS 服务器告诉它的,所以在重定向到同一 IP 地址的情况下,您的浏览器不会更改域。这就是为什么您会在域末尾看到一个blocked.aspx - 因为它不是您的网络服务器。
答案2
正如你所说:
如果我将我的DNS更改为google DNS,则可以正常访问该网站。
所以这与 DNS 有关。您的 ISP 提供自己的 DNS 服务器,并且拥有一个被阻止的域列表。当您现在查询被阻止域的 IP 地址时,您的 ISP 将不是使用正确的 IP 地址进行响应,但使用他自己的服务器(或 FBI 或其他)的 IP 地址,该服务器将仅托管“被阻止”的站点。
答案3
假设你有这个网站http://example.org。当您使用 ISP 的 DNS 服务器时,它会将该域名解析为 IP 地址
由于 ISP 不希望您看到该网站,他们会让他们的 DNS 服务器为您提供不同的 IP。在该 IP 地址上,他们可以托管向您显示警告消息的页面。
ISP 不会以任何方式更改您的网站,他们只会将用户引导至他们自己的网络服务器。
答案4
ISP 通常运行自己的 DNS 服务器,而客户默认使用这些服务器(通常是因为客户忽视了更改这一点)。这样,ISP 只需返回该域名的虚假 IP 地址,即可将任何域名的流量重定向到其他服务器。除其他缺陷外,这还允许 ISP 将“被阻止”的网站重定向到他们自己的服务器,该服务器将仅托管“blocked.aspx”页面(或 ISP 使用的任何页面)。