其他概览
如何修改 hosts 文件、刷新 DNS?
hosts 作用是在向公网 DNS 查询之前生效,用来把某个域名钉死到指定 IP(本地开发、切测试机、挡广告域名)。改完必须清操作系统缓存,浏览器往往还有自己的一份。
文件位置:
- Windows:
C:\Windows\System32\drivers\etc\hosts - macOS、Linux:
/etc/hosts
一行一个映射,# 开头是注释:
127.0.0.1 local.example.com
Windows:用管理员记事本打开;改不了时,把文件拷出来改完,再覆盖回 etc;或者右键 hosts → 属性 → 安全 → 编辑,给当前用户加「写入」权限(等于放开系统文件权限,用完建议收回)。
刷新 DNS:
- Windows:
ipconfig /flushdns,查看当前缓存用ipconfig /displaydns。 - macOS:
sudo dscacheutil -flushcache,后执行sudo killall -HUP mDNSResponder。 - Linux(systemd-resolved):
sudo resolvectl flush-caches。
浏览器主机缓存:Chrome 打开 chrome://net-internals/#dns,点 Clear host cache。如果没有这项就直接重启浏览器。
注意:ping 已指向新 IP、浏览器仍打开旧站,是浏览器缓存或开了「安全 DNS」。
注意:站点走 IPv6 时,hosts 里还要写 ::1 或对应的 IPv6 地址,只写 127.0.0.1 不够。
端口被占用怎么查、怎么清?
本地起 dev server 报错 EADDRINUSE、address already in use,是该端口上已有进程在听。
Windows:
netstat -ano | findstr :8080
taskkill /PID <pid> /F
macOS、Linux:
lsof -nP -iTCP:8080 -sTCP:LISTEN
kill <pid>
备注:杀不掉再用 kill -9 <pid>。Linux 还可以 sudo fuser -k 8080/tcp。
注意:Windows 上 PID 4 是 System,不要 taskkill。先看 netstat 的状态是不是 LISTENING,避免误杀只是连出去的临时端口。