我正在尝试将google.com重定向到我的本地计算机,以娱乐和学习Mac上的/ etc / hosts文件。
127.0.0.1 www.google.com
但是,当我在Mac上的Chrome浏览器中访问www.google.com时,它仍然映射到Google主页。为什么?
基本上,这就是我所做的一切:
- 输入
sudo vim /etc/hosts
端子。 - 输入
127.0.0.1 www.google.com
到主机文件。 - 保存并退出vim。
我正在尝试将google.com重定向到我的本地计算机,以娱乐和学习Mac上的/ etc / hosts文件。
127.0.0.1 www.google.com
但是,当我在Mac上的Chrome浏览器中访问www.google.com时,它仍然映射到Google主页。为什么?
基本上,这就是我所做的一切:
sudo vim /etc/hosts
端子。127.0.0.1 www.google.com
到主机文件。Answers:
该hosts
文件无法以这种方式工作。您只能使用它将主机名映射到IP地址,而不是localhost
。
对于您的情况,您可以使用127.0.0.1 www.google.com
,即将www.google.com映射到127.0.0.1。
如果要将更多的主机名映射到一个IP地址,只需在同一行中添加这些主机名即可,例如127.0.0.1 www.a.com www.b.com
。
127.0.0.1 google.com
在此行之后添加(不添加www),并检查其是否有效。
127.0.0.1 google.com
也不起作用。我不确定发生了什么...我知道这/etc/hosts
是/private/etc/hosts
Mac上的软链接,但我认为这完全没有帮助。
hosts
将主机名映射到IP地址,反之亦然。
网络浏览器不是检查hosts
语法是否正确的最佳方法。尝试执行
ping www.google.com
并确认它能ping通127.0.0.1
。
Chrome似乎忽略hosts
文件的原因是缓存:
如果Chrome最近已经查询了IP(最近的定义很可能取决于DNS服务器返回的生存时间(TTL)),则它将绕过hosts
文件,因为它已经知道正确的IP。这样做是为了加快Web浏览速度。
为了使Chrome尊重新条目,请执行以下操作:
/etc/hosts
按照@Renan的描述进行编辑。
转到chrome://chrome/settings/clearBrowserData
。
选择since the beginning of time
。
选中Empty the cache
,但取消选中其他所有内容。
单击Clear browsing data
并等待其完成。
重新启动Chrome。
Chrome hosts
现在应该尊重您的文件。
hosts
只要条目不是已经缓存的主机名,Chrome就会立即接受更改。我假设它hosts
仅检查TTL是否过去。对于大型网站,这可能需要一段时间。
chrome.exe
偶尔会读取整个文件。
net-internals/#dns
,/etc/hosts
更改后主机缓存会自动清除。
我的答案是上述两者的结合,因为我正在通过Fortinet SSL VPN for Ubuntu 16.04连接到我的办公室。
我要做的第一件事是启动终端控制台并运行以下命令:
sudo nano /etc/resolvconf/resolv.conf.d/base
我添加了以下示例:
searchdomain domain.local
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
然后,我按来保存文件,并按来CTRL-O
关闭nano CTRL-X
。
然后,我执行了以下操作,并且效果很好:
为了使Chrome尊重新条目,请执行以下操作:
/etc/hosts
按照@Renan的描述进行编辑。
chrome://chrome/settings/clearBrowserData
。Chrome现在应该尊重您的主机文件。
127.0.0.1 www.google.com
。但是,google.com仍然可以访问Google主页。我需要刷新什么吗?我应该重新启动计算机吗?