怎么修改hosts文件:三系统操作方法
怎么修改hosts文件这件事,核心就是用管理员权限打开对应系统里的hosts纯文本文件,按"IP地址空格域名"的格式逐行写入记录,保存后刷新系统DNS缓存即可生效。Windows系统的文件路径固定在C盘System32目录下,Mac和Linux统一放在/etc目录下。这个方法适用于本地开发调试时把测试域名指向本机、批量屏蔽指定广告或追踪域名、以及在域名解析出现故障时临时手动指定解析结果。修改hosts后若出现部分网站无法打开,优先检查每行是否只用一个空格或Tab分隔IP与域名,文件末尾是否保留一个空行,以及是否误删了默认的127.0.0.1localhost记录。
Windows下怎么修改hosts文件
你在Windows上修改hosts文件,比较稳妥的方式是点击开始菜单,输入"记事本",在搜索结果上右键选择"以管理员身份运行",然后在记事本里通过"文件-打开"导航到C:\Windows\System32\drivers\etc\hosts。如果直接双击hosts文件,系统会提示你选择打开方式,即使选了记事本也能打开,但保存时会因为权限不足而失败,这是多数人卡住的原因。打开文件时,文件类型要从"文本文档"切换到"所有文件",否则看不到hosts这个无后缀的文件。
保存时注意别勾上"另存为类型"里的编码转换,保持ANSI编码(Windows10及更早)或UTF-8无BOM编码。如果你用普通方式打开后直接改了保存,Windows会在同目录生成一个hosts.txt副本,原文件没有变化,这就是改了不生效的典型反例——你把修改存成了一个新文件,系统不会读取这个副本。
Mac与Linux下怎么修改hosts文件
Mac上打开终端,输入sudonano/etc/hosts,回车后输入你的登录密码,输入时屏幕不会显示任何字符,这是正常的。nano编辑器里用方向键移动光标,在文件末尾另起一行输入需要的映射记录,写完按Ctrl+O保存,回车确认文件名,再按Ctrl+X退出编辑器。如果你更习惯图形界面,从AppStore安装iHosts或GasMask这类专用管理工具,可以带界面地编辑hosts,但初次使用仍需要输入管理员密码授权。
Linux发行版的操作与Mac基本一致,终端里执行sudovi/etc/hosts或sudonano/etc/hosts都可以。用vi的话,按i进入插入模式,编辑完成后按Esc,输入:wq回车保存退出。服务器环境下如果没有图形界面,vi或nano是仅有的选择,不要尝试通过FTP下载hosts改完再上传,权限和属主会被改掉,可能导致系统网络服务异常。
hosts文件修改后的生效与跨系统对比
修改保存后,hosts记录不会立刻被系统读取,必须手动刷新DNS解析缓存。Windows下打开管理员命令提示符,执行ipconfig/flushdns,看到"已成功刷新DNS解析缓存"的提示就完成了。Mac从OSX10.10开始需要同时执行两条命令:sudodscacheutil-flushcache和sudokillall-HUPmDNSResponder,后者的作用是主动重启系统的DNS响应服务,单独执行前一条在新版macOS上经常不生效。Linux桌面版一般无需手动刷新,桌面环境会自动识别hosts变化;服务器版如果跑了nscd或systemd-resolved缓存服务,需要执行sudosystemctlrestartsystemd-resolved重启对应服务。
三个系统的关键路径与刷新命令整理如下:
| 操作系统 | hosts文件路径 | 刷新DNS缓存命令 |
|---|---|---|
| Windows10/11 | C:\Windows\System32\drivers\etc\hosts | ipconfig/flushdns |
| macOS | /etc/hosts | sudodscacheutil-flushcache&&sudokillall-HUPmDNSResponder |
| Linux | /etc/hosts | sudosystemctlrestartsystemd-resolved(无缓存服务时无需执行) |
每行只写一条映射。
hosts文件的格式遵循RFC952及后续RFC1123补充规范,每行结构为"IP地址主机名[别名]",IP与主机名之间用至少一个空格或Tab分隔,号开头的行视为注释不参与解析。一个域名只能对应一条生效记录,hosts文件中排在后面的同名记录会覆盖前面的。Chrome浏览器从80版本开始默认开启安全DNS(即DNSoverHTTPS),在浏览器内部会直接向加密DNS服务器发起请求,绕过系统hosts文件,这时候即使你正确修改了hosts并刷新缓存,Chrome里访问该域名仍然走公网解析,需要在Chrome设置的"隐私和安全-安全"里关闭"使用安全DNS"才能让hosts规则在浏览器内生效。企业域环境下,组策略可能定期重置hosts文件,手动添加的记录会在重启或策略刷新后被清除,这类环境应联系网络管理员在DNS服务器上配置记录,而非改本机hosts。
