“hosts”文件中的更改响应 ping 但拒绝在任何浏览器上连接

“hosts”文件中的更改响应 ping 但拒绝在任何浏览器上连接

我目前正在做一个项目,我需要模拟实时网站的 URL,以便在项目网站、项目浏览器扩展和项目数据库之间正确通信。为此,我修改了我电脑的“hosts”文件。我花了几个小时才解决最初遇到的任何问题,它工作了大约 2 周。昨天,它又停止工作了,我一点办法都没有让它再次工作。我没有更改我的 hosts 文件中的任何内容。

此外,导航到localhost:3080127.0.0.1:3080甚至example-site.com:3080在浏览器中都可以正常使用,但不简单example-site.com- 这是最近才起作用的。

我看过了许多 超级用户网stackoverflow.com发布和回答人们遇到类似问题而我却无法实施任何解决方案。

我的主机文件如下所示:

...
127.0.0.1     example-site.com www.example-site.com
...

我也尝试过将条目分成不同的行,但没有什么区别。

据我所知,ping URL 也是可行的。以下是 ping 响应:

Pinging example-site.com [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

Ping statistics for 127.0.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

我尝试过的一些方法:

  • 重新启动计算机(多次)
  • ipconfig /flushdns在具有管理权限的终端中
  • 清除 Chrome 中的主机缓存 ( chrome://net-internals/#dns)
  • 允许从本地主机加载的资源使用无效证书(chrome://flags/#allow-insecure-localhost
  • sfc /scannow在终端运行
  • 确保 hosts 文件采用 ANSI 或 UTF-8 编码
  • 还有一些其他的事情我记不清了……

如任何人提供任何帮助或见解,都将不胜感激。

答案1

hosts-file 与该问题无关,它仅将名称绑定到 IP 地址。

由于localhost:3080example-site.com:3080可以通过浏览器访问,但 simpleexample-site.com不能,因此 Web 服务不接受端口 80 (HTTP) 和/或 443 (HTTPS) 中的流量。可以在 Windows 操作系统中通过netstat -aon提升的命令提示符运行来验证这一点。如果端口已打开,netstat将显示0.0.0.0:80 LISTENING0.0.0.0:443 LISTENING

如果未显示这些内容,则提供访问的服务未侦听这些端口。当前服务配置文件将包含两个条目,如下所示:listen-port=3080listen-port=3443。应该可以以相同的方式简单地添加端口 80 和 443,具体取决于应允许访问的协议。现代 Web 服务通常仅允许 HTTPS。

如果在配置中添加这些端口可以在防火墙关闭时进行访问,但在防火墙打开时却不能进行访问,则在防火墙配置中也需要打开相同的端口。

使用 *NIX OSnetstat命令和输出略有不同。在 Debian Bullseye 中,我会使用命令netstat -tulpn | grep "80\|443" | grep "LISTEN"

相关内容