如何修改Linux系统的hosts文件进行域名解析配置?

在Linux系统中,”host”通常涉及两个核心配置:主机名(hostname)和hosts文件(/etc/hosts),前者用于标识系统在网络中的名称,后者实现本地域名与IP地址的映射,正确修改这两项配置对服务器管理、网络服务部署及开发环境搭建至关重要,以下将分步骤详细说明修改方法,涵盖主流Linux发行版(如Ubuntu/Debian、CentOS/RHEL)的差异。

如何修改linux host

修改Linux主机名(hostname)

主机名分为临时主机名(重启后失效)和永久主机名(重启后生效),修改方式因系统初始化系统(systemd或SysVinit)不同而有所区别。

临时修改主机名

通过hostname命令可直接修改当前会话的主机名,适用于临时测试:

sudo hostname new_hostname  # new_hostname为自定义主机名

执行后,通过hostname命令可立即查看新主机名,但重启系统后会恢复为原值。

永久修改主机名

(1)基于systemd的发行版(Ubuntu 16.04+、CentOS 7+、Debian 8+)

  • 使用hostnamectl命令(推荐):
    sudo hostnamectl set-hostname new_hostname  # 立即生效,无需重启
  • 直接修改配置文件(适用于无hostnamectl的systemd系统):
    sudo vi /etc/hostname  # 删除原内容,替换为new_hostname,保存退出

    修改后需重启或执行sudo hostname new_hostname使配置立即生效。

(2)基于SysVinit的旧版系统(CentOS 6、Ubuntu 14.04等)

如何修改linux host

  • 修改/etc/sysconfig/network文件(CentOS 6):
    sudo vi /etc/sysconfig/network

    在文件中添加/修改HOSTNAME=new_hostname(需重启生效)。

  • 修改/etc/hostname文件(Ubuntu 14.04等):
    sudo vi /etc/hostname  # 内容同systemd发行版,重启生效

主机名修改的发行版差异对比

发行版系列 永久配置文件路径 推荐修改命令 是否需重启
Ubuntu/Debian /etc/hostname sudo hostnamectl set-hostname 否
CentOS/RHEL 7+ /etc/hostname sudo hostnamectl set-hostname 否
CentOS 6及以下 /etc/sysconfig/network sudo vi /etc/sysconfig/network 是

修改Linux hosts文件(/etc/hosts)

hosts文件是本地DNS解析的核心配置,用于将域名映射到指定IP地址,优先级高于DNS服务器,修改步骤如下:

查看当前hosts文件内容

cat /etc/hosts
```  示例:  

0.0.1 localhost
127.0.1.1 old_hostname # 部分系统会自动添加主机名记录
192.168.1.100 server.example.com # 自定义域名映射


#### 2. 编辑hosts文件
使用文本编辑器(如vi、vim、nano)以root权限修改:  
```bash
sudo vi /etc/hosts

根据需求添加或修改映射规则,格式为:
IP地址 域名 [别名]

168.1.50  testserver  test  # 添加testserver域名,别名test
10.0.0.1      gitlab.example.com  # 绑定GitLab服务器

保存并验证

保存文件后,通过以下命令验证解析是否生效:

ping testserver  # 若显示192.168.1.50,则修改成功
nslookup gitlab.example.com  # 检查是否返回10.0.0.1

注意:hosts文件修改后立即生效,无需重启服务,但需确保文件权限为644(sudo chmod 644 /etc/hosts),避免因权限问题导致解析失败。

如何修改linux host

注意事项

  1. 主机名规范:建议使用小写字母、数字及连字符,避免特殊字符(如_、),长度不超过64字符。
  2. 备份配置:修改前备份原文件(sudo cp /etc/hosts /etc/hosts.bak),防止误操作导致系统异常。
  3. 网络服务影响:若主机名用于集群服务(如Kubernetes、Docker),需确保所有节点配置一致,否则可能引发通信故障。

相关问答FAQs

问题1:为什么修改了/etc/hostname文件后,重启系统主机名仍未改变?
解答:可能是由于系统启用了cloud-init(如Ubuntu云服务器),cloud-init会覆盖/etc/hostname的配置,需检查/etc/cloud/cloud.cfg文件,确保preserve_hostname: true(默认为false),或通过sudo cloud-init clean清除缓存后重启。

问题2:hosts文件中如何注释多行内容,以及注释符号有哪些?
解答:hosts文件支持使用进行单行注释,多行注释可在每行开头添加,

# 这是一个注释行
# 192.168.1.100  old_server  # 旧服务器IP已停用,保留注释

注意:后的内容会被系统忽略,不可将有效映射规则放在后。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/26613.html

赞 (0)
酷番叔酷番叔
上一篇 2025年9月20日 05:21
下一篇 2025年9月20日 05:39

相关推荐

  • linux如何查看显存

    Linux中,可通过nvidia-smi(NVIDIA显卡)或查看`/

    2025年8月15日
    24100
  • linux ll如何中断

    Linux 中,使用 ll 命令查看目录时,可按

    2025年8月18日
    25800
  • 为什么你还在用传统命令替代方案?

    在Linux系统中配置网卡是网络管理的基础操作,无论是服务器维护还是个人电脑使用都至关重要,以下将详细讲解命令行和图形界面两种配置方式,涵盖静态IP、动态IP(DHCP)及常见问题解决,确保步骤清晰、安全可靠,命令行配置(推荐服务器使用)查看当前网卡信息ip addr show # 或使用旧命令 ifconfi……

    2025年6月24日
    24900
  • linux 中如何编译器

    Linux 中,使用 gcc 或 g++ 编译器,gcc [选项] 源文件名.

    2025年8月9日
    24200
  • 如何安全登录Linux服务器?

    远程登录(最常用场景)SSH 登录(推荐安全方式)步骤:ssh 用户名@服务器IP地址 -p 端口号示例:ssh admin@192.168.1.100 -p 22 # 默认端口22可省略关键操作:首次登录:需输入yes确认主机指纹(防中间人攻击),认证方式:密码登录:输入用户密码(输入时无显示),密钥登录(更……

    2025年7月26日
    32600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信