必须编辑hosts文件强制映射:windows路径为c:\windows\system32\drivers\etc\hosts,macos/linux为/etc/hosts;需以管理员/root权限打开,添加“127.0.0.1 localhost”并保存,再执行ipconfig /flushdns(win)或sudo killall -hup mdnsresponder(macos)刷新缓存,最后用ping localhost验证是否返回127.0.0.1。

当你在浏览器地址栏输入 localhost 或自定义开发域名(如 dev.local)却看到“无法解析此服务器”错误时,说明系统根本没把那个名字对应到 127.0.0.1,DNS 解析链在第一步就断了——此时必须手动编辑 hosts 文件强制建立映射。
确认 hosts 文件位置并获取编辑权限
Windows 用户需打开 C:\Windows\System32\drivers\etc\hosts;macOS 和 Linux 用户路径是 /etc/hosts。这一步不能双击直接用记事本或 TextEdit 打开,否则保存会失败——因为该文件受系统保护,必须以管理员(Windows)或 root(macOS/Linux)权限运行编辑器。
Windows:右键“记事本”→“以管理员身份运行”→菜单栏“文件”→“打开”,导航至上述路径,选中 hosts 文件(注意文件类型要设为“所有文件”才能看见它)。
macOS/Linux:打开终端,输入 sudo nano /etc/hosts,回车后输入当前用户密码(输的时候不显示字符,正常输入完按回车即可)。
添加或修正 localhost 映射行
在文件末尾另起一行,输入:
127.0.0.1 localhost
这一行必须独立存在、前后无空格、开头绝不能有 # 符号,否则等于注释掉失效。如果文件里已有类似内容,但前面带了 #(例如 # 127.0.0.1 localhost),请直接删掉那一行开头的 #;如果存在多条 127.0.0.1 指向不同域名的记录,只要确保 localhost 这条干净、唯一、未被注释即可。
IPv6 支持可选加一行:::1 localhost。如果你只做前端或 Node.js 开发,这条不是必须的;但若用 Safari、某些 Electron 应用或启用了 IPv6 的服务,漏掉它可能导致偶发解析失败。
保存修改并刷新系统缓存
Windows 记事本:点击“文件”→“另存为”,在“文件名”框中**再次输入 hosts(不带任何扩展名!)**,保存类型选“所有文件”,编码选 UTF-8,目标位置必须仍为 C:\Windows\System32\drivers\etc\,覆盖原文件。
macOS/Linux nano 编辑器:按 Ctrl+O → 回车确认保存 → Ctrl+X 退出。
接下来必须清除系统 DNS 缓存,否则旧解析结果还会生效:
Windows:以管理员身份打开命令提示符,执行 ipconfig /flushdns;
macOS:终端执行 sudo killall -HUP mDNSResponder;
Linux(多数发行版):执行 sudo systemd-resolve --flush-caches 或 sudo systemctl restart nscd(取决于你用的缓存服务)。
验证映射是否生效
方法一:打开命令行,输入 ping localhost,观察返回的 IP 是否为 127.0.0.1;
方法二:在浏览器地址栏直接访问 http://localhost(不带端口),如果页面能加载,说明映射成功;
方法三:若你访问的是自定义域名(如 myapp.test),则在 hosts 中加入 127.0.0.1 myapp.test,再用 ping myapp.test 验证是否返回 127.0.0.1 —— 注意:浏览器访问时必须带上协议(http:// 或 https://),否则可能跳转到搜索引擎。











