Windows、Linux 和 macOS 系统修改 hosts 教程

在计算机网络中,hosts 文件是一个用于将主机名映射到 IP 地址的系统文件。通过修改 hosts 文件,我们可以实现本地域名解析,比如在开发环境中方便访问本地服务器,或者屏蔽某些网站等。接下来为大家介绍在 Windows、Linux 和 macOS 系统下修改 hosts 文件的方法。

一、Windows 系统

(一)找到 hosts 文件位置

hosts 文件通常位于C:\Windows\System32\drivers\etc\目录下 。由于权限限制,我们需要以管理员身份运行文本编辑器来编辑此文件。

(二)以管理员身份打开文本编辑器

  1. 按下Win + S组合键,在搜索框中输入 “记事本”。
  1. 在搜索结果中,右键点击 “记事本”,选择 “以管理员身份运行” 。此时,如果系统提示 “是否允许此应用对你的设备进行更改”,点击 “是”。

(三)打开 hosts 文件

  1. 在以管理员身份打开的记事本中,点击 “文件” 菜单,选择 “打开”。
  1. 在 “打开” 对话框中,导航到C:\Windows\System32\drivers\etc目录。如果看不到 hosts 文件,将右下角的 “文件类型” 改为 “所有文件 (.)” ,然后选中 hosts 文件并点击 “打开”。

(四)修改 hosts 文件内容

  1. hosts 文件内容的格式为IP地址 空格 主机名 。例如,如果要将example.com指向本地 IP 地址127.0.0.1,可以在文件末尾添加一行:127.0.0.1 example.com
  1. 注意,每个映射条目占一行,以#开头的行是注释行,不会被系统解析。例如:# 这是一条注释
#例如
127.0.0.1 test.com

(五)保存并关闭文件

完成编辑后,点击 “文件” 菜单,选择 “保存” 。如果无法保存,请确保是以管理员身份运行的记事本。保存后关闭文件。

(六)刷新 DNS 缓存

为了让修改立即生效,需要刷新系统的 DNS 缓存。
  1. 按下Win + R组合键,打开 “运行” 对话框。
  1. 在 “运行” 对话框中输入 cmd,然后点击 “确定”,打开命令提示符。
  1. 在命令提示符中,输入ipconfig /flushdns命令并回车 。此时会看到提示 “Windows IP 配置已成功刷新 DNS 解析缓存”。

二、Linux 系统

(一)找到 hosts 文件位置

在 Linux 系统中,hosts 文件通常位于/etc/hosts 。由于该文件属于系统文件,修改时需要使用sudo命令提升权限。

(二)备份 hosts 文件(推荐)

在修改之前,强烈建议备份原 hosts 文件,以防修改出现问题时可以恢复原始设置。在终端中输入以下命令进行备份:

sudo cp /etc/hosts ~/Desktop/hosts.backup
上述命令将/etc/hosts文件复制到桌面,并命名为hosts.backup。

(三)使用文本编辑器修改 hosts 文件

Linux 系统中有多种文本编辑器可供选择,这里以常用的nano和vim为例。
  1. 使用 nano 编辑器

在终端中输入以下命令:

sudo nano /etc/hosts
输入密码后,会进入 nano 编辑器界面。使用方向键移动光标,即可对文件内容进行编辑。例如,要添加一个将test.com指向192.168.1.100的映射,可以在文件末尾添加一行:192.168.1.100 test.com 。
保存并退出的操作如下:
  • 按Ctrl+O组合键,然后回车确认保存。
  • 按Ctrl+X组合键退出 nano 编辑器。
  1. 使用 vim 编辑器

在终端中输入以下命令:

sudo vim /etc/hosts
输入密码后,进入 vim 编辑器。按i键进入插入模式,此时可以对文件内容进行编辑。编辑完成后,按ESC键退出插入模式,然后输入:wq并回车,即可保存并退出 vim 编辑器。

(四)刷新 DNS 缓存(可选)

某些 Linux 系统可能需要刷新 DNS 缓存使更改生效,不同的 DNS 服务刷新缓存的命令有所不同。
  1. 对于大多数使用systemd-resolved服务的 Linux 系统,可以使用以下命令刷新 DNS 缓存:
  1. 如果系统使用nscd服务,可以使用以下命令:
sudo systemd-resolve --flush-caches
sudo systemctl restart nscd

(五)验证修改

使用以下命令验证修改是否生效,例如要验证test.com的映射是否生效,可以在终端中输入:
ping test.com

或者使用nslookup命令:

nslookup test.com

如果返回的 IP 地址是你在 hosts 文件中设置的 IP 地址,说明修改生效。

三、macOS 系统

(一)打开终端

可以通过 Spotlight 搜索(Command + 空格组合键),输入 “Terminal”,然后回车打开终端 。也可以进入 “应用程序”>“实用工具”>“终端” 来打开。

(二)备份 hosts 文件(推荐)

在终端中输入以下命令,备份原 hosts 文件到桌面:

sudo cp /etc/hosts ~/Desktop/hosts.backup

(三)使用文本编辑器修改 hosts 文件

同样以nano和vim编辑器为例。
  1. 使用 nano 编辑器
在终端中输入以下命令:
sudo nano /etc/hosts

输入密码后,即可在 nano 编辑器中编辑 hosts 文件。编辑完成后,按Control + O组合键保存,出现 “File Name to Write: /etc/hosts” 时回车确认,再按Control + X组合键退出。

2. 使用 vim 编辑器

在终端中输入以下命令:

sudo vim /etc/hosts

输入密码后,按i键进入编辑模式进行修改。修改完成后,按ESC键,然后输入:wq保存并退出。

(四)修改 hosts 文件内容

hosts 文件的格式与 Windows 和 Linux 系统相同,即IP地址 域名 。例如:
127.0.0.1 localhost
255.255.255.255 broadcasthost

# 屏蔽网站示例
0.0.0.0 ad.example.com

# 本地开发示例
127.0.0.1 myproject.local
(五)刷新 DNS 缓存
根据 macOS 版本执行对应命令:
  1. macOS Ventura (13.x) 及更新版本
sudo killall -HUP mDNSResponder
  1. macOS Monterey (12.x) 及更早版本
sudo killall -HUP mDNSResponder
  1. macOS High Sierra (10.13) 及更早版本
sudo killall -HUP mDNSResponder

(六)验证修改

在终端中输入以下命令,检查域名是否指向正确的 IP 地址:
ping yourdomain.com
例如,要检查myproject.local是否指向正确的 IP,可以输入:
ping myproject.local

四、注意事项

  1. 权限问题:无论是在 Windows、Linux 还是 macOS 系统中,修改 hosts 文件都需要相应的管理员权限。在 Windows 中要以管理员身份运行文本编辑器,在 Linux 和 macOS 中要使用sudo命令。
  1. 文件格式:hosts 文件的格式必须正确,IP 地址和主机名之间用空格或制表符分隔,每个映射条目占一行,注释行以#开头。
  1. 修改风险:错误的修改可能导致网络连接问题,例如无法访问某些网站等。在修改之前,最好备份原 hosts 文件,以便在出现问题时能够恢复。
  1. 应用程序缓存:某些应用程序可能有自己的 DNS 缓存,修改 hosts 文件后,可能需要重启相关应用程序才能使更改生效。
© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容