Windows/Linux hosts 文件修改详细教程
摘要:本文为运维通用hosts文件修改最全实操教程,详细讲解Windows、Linux(CentOS、Ubuntu)系统hosts文件路径、修改方法、权限设置、缓存刷新、生效验证及生产环境注意事项,附带可直接复制执行的命令,适配测试调试、业务预发布、域名解析劫持等场景,零基础可直接套用。
目录(页面锚点可跳转)
一、前言:什么是hosts文件?作用是什么?
hosts是操作系统内置的本地域名解析配置文件,其解析优先级高于公共DNS、本地DNS服务器,是运维、开发人员最常用的本地调试工具。系统在访问域名时,会优先读取本机hosts文件中的IP映射记录,无匹配记录时才会向DNS服务器发起解析请求。
日常工作中,hosts文件主要用于:业务预发布测试、内网服务器域名绑定、域名解析临时切换、屏蔽恶意广告域名、本地开发环境域名调试、故障解析排查等场景。该修改仅对当前本机生效,不会影响局域网、公网其他设备。
重要提示:hosts属于临时调试工具,仅适用于测试、排错场景,企业生产正式业务禁止长期依赖hosts做域名解析,需统一使用DNS服务管理。
二、修改hosts前期准备与规范说明
1、权限准备要求
Linux系统:必须使用root超级管理员权限操作,普通用户无写入、保存权限,修改会提示权限拒绝。
Windows系统:必须以管理员身份打开编辑器,直接双击打开hosts文件编辑,保存会提示权限不足、无法保存。
2、hosts标准书写规范
全局通用统一格式:IP地址 空格 域名,支持一个IP对应多个域名,#号为注释符号,注释内容不会生效。
# 标准格式示例 127.0.0.1 localhost 192.168.1.10 test.com # 192.168.1.49 test.com 注释废弃解析记录
3、操作前置规范
修改前必须备份原始hosts文件,避免误删、格式错误导致解析故障,方便一键回滚。
确认目标服务器IP、业务域名,保证IP端口通、服务器网络正常。
禁止使用特殊符号、中文、乱码,仅支持英文空格、#注释、数字、字母。
三、Windows/Linux系统hosts文件修改完整步骤
1、Linux系统(CentOS/Ubuntu通用)修改教程
Linux系统hosts文件绝对路径:/etc/hosts
步骤1:备份原始文件(必做)
cp /etc/hosts /etc/hosts_bak_$(date +%Y%m%d)
步骤2:root权限编辑hosts文件
vim /etc/hosts
步骤3:编辑保存
按 i 进入编辑模式,文件末尾新增IP域名映射记录,编辑完成后按 ESC,输入 :wq 回车保存退出。
2、Windows系统(Win10/Win11/Server)修改教程
Windows系统hosts文件绝对路径:C:\Windows\System32\drivers\etc\hosts
桌面左下角点击开始菜单,搜索记事本,右键选择以管理员身份运行。
点击记事本左上角【文件】-【打开】,粘贴上方完整路径,文件类型选择【所有文件】,即可看到hosts文件。
打开文件后,在末尾新增解析记录,按下
Ctrl+S保存文件,关闭记事本即可。

避坑提示:Windows普通权限打开hosts编辑,会直接保存失败,所有修改无效,管理员运行是修改成功的核心关键。也可以cmd运行drivers进入etc目录打开hosts文件
四、修改后刷新缓存、验证生效方法
1、Linux系统生效与验证
常规Linux系统修改hosts后即时生效,开启DNS缓存服务的服务器需手动刷新缓存。
# CentOS 刷新nscd缓存 systemctl restart nscd # Ubuntu 刷新系统DNS缓存 systemctl restart systemd-resolved
生效验证命令,精准读取hosts解析结果:
# 读取本地hosts解析 getent www.powershell.com.cn # 连通性测试 ping www.powershell.com.cn
2、Windows系统生效与验证
Windows修改hosts后需手动刷新DNS缓存,否则系统依旧读取旧解析记录。
步骤1:以管理员身份打开CMD命令提示符,执行刷新命令
ipconfig /flushdns
步骤2:验证解析是否生效
ping www.powershell.com.cn
验证技巧:nslookup默认查询公网DNS,无法精准验证hosts,优先使用ping命令确认本机解析结果。
五、生产环境修改hosts核心禁忌与注意事项
严禁无备份修改:生产服务器修改hosts必须提前备份,一旦格式错误、内容清空,会导致服务器主机名解析异常、外网域名无法访问,引发业务故障。
区分环境使用:hosts仅单机生效,集群、多节点服务器禁止逐台hosts维护解析,正式环境必须使用内网DNS统一配置。
及时清理临时记录:业务测试、预发布完成后,立即删除hosts临时调试记录,后续IP变更极易引发隐性解析冲突,排查难度极高。
严格管控文件权限:Linux hosts文件权限保持默认644,禁止开放普通用户写入权限,防止恶意篡改解析,导致流量劫持。
规范书写格式:禁止多余符号、中文、空格错乱,一条解析对应一行,废弃记录优先注释而非删除,方便回溯。
生产风险提醒:绝大多数线上解析异常故障,均是hosts临时记录未清理导致,运维操作需养成“测试完即清理、修改必备份”的标准化习惯。
综上所述,hosts文件修改是运维、开发必备的基础实操技能,操作简单但容错率极低。日常测试调试可灵活使用本机hosts实现域名自定义解析,生产环境严格限制使用场景、规范操作流程、做好备份与收尾清理工作,即可完全规避解析故障,保障业务稳定运行。


