Linux系统中的hosts文件是本地域名解析的核心配置文件,系统会优先读取该文件中的映射规则,再向DNS服务器发起查询。该文件的作用是将指定的域名和IP地址绑定,常用于本地开发环境配置、内网服务访问等场景。
Linux中hosts文件的默认位置
几乎所有主流Linux发行版,包括Ubuntu、CentOS、Debian、Fedora等,都遵循文件系统层次结构标准(FHS),hosts文件的统一存放路径为/etc/hosts。这个路径是系统级配置目录下的固定文件,所有用户都可以通过该路径访问到hosts文件。
验证hosts文件位置的方法
可以通过终端命令直接确认hosts文件是否存在于默认路径,执行以下命令即可:
# 查看/etc目录下是否存在hosts文件 ls -l /etc/hosts
如果命令执行后输出类似-rw-r--r-- 1 root root 234 1月 10 12:00 /etc/hosts的内容,就说明hosts文件确实存放在该路径下。
不同场景下访问hosts文件的注意事项
普通用户查看hosts文件
普通用户拥有hosts文件的读取权限,可以直接使用文本查看命令读取文件内容,执行以下命令即可查看当前hosts文件的配置:
# 使用cat命令查看hosts文件内容 cat /etc/hosts
默认的hosts文件内容通常包含本地回环地址的映射,示例如下:
127.0.0.1 localhost 127.0.1.1 主机名 ::1 localhost ip6-localhost ip6-loopback
修改hosts文件的操作
hosts文件默认属于root用户所有,普通用户没有修改权限,需要使用sudo命令获取管理员权限才能修改。可以使用系统自带的文本编辑器进行修改,比如使用nano编辑器的操作如下:
# 使用sudo权限打开hosts文件 sudo nano /etc/hosts
修改完成后,添加自定义的域名映射规则即可,比如添加本地开发环境的域名映射:
# 本地开发环境映射 127.0.0.1 dev.test.com 192.168.0.100 internal.service.com
修改完成后保存退出,新的映射规则会立即生效,不需要重启系统。
hosts文件相关常见问题
- 如果误删了hosts文件,可以手动重建该文件,添加默认的本地回环映射规则即可恢复基础功能。
- 修改hosts文件后域名解析未生效,可以清除本地DNS缓存,不同发行版清除缓存的命令不同,比如Ubuntu可以使用
sudo systemd-resolve --flush-caches命令。 - 不要随意删除hosts文件中默认的127.0.0.1和::1相关映射,否则可能导致本地服务访问异常。