Ubuntu 主机名:精通配置与管理


主机名(hostname)是Linux系统中用于标识网络上特定设备的名称,它在网络通信、服务配置(如 Kubernetes 集群、数据库)以及日志记录中扮演着至关重要的角色。对于初学者来说,配置主机名似乎很简单,但若不理解其背后的机制,可能会在未来遇到服务无法解析、网络通信失败等问题。

本文将为你详细解析如何在 Ubuntu 20.04 或更高版本中正确地配置主机名,并介绍一种现代且高效的方法。

主机名的两种类型:短主机名与 FQDN

在配置主机名之前,我们首先要理解两种常见的主机名类型:

  • 短主机名(short hostname): 比如 k8s-node03。它通常用于本地网络中,易于记忆和使用。
  • 完全限定域名(FQDN - Fully Qualified Domain Name): 比如 k8s-node03.ilinux.io。它包含了主机名和域名,是全球唯一的,用于互联网或更复杂的网络环境。

在 Linux 系统中,一个设备只能有一个静态主机名,但这个名称可以是短主机名,也可以是 FQDN。为了确保兼容性和可扩展性,最佳实践是将静态主机名设置为 FQDN

方法一:使用 hostnamectl 命令(推荐)

hostnamectlsystemd 软件包的一部分,是管理主机名的首选工具。它不仅能修改主机名,还能立即生效,并且会自动更新相关配置文件。

1. 修改静态主机名

使用 hostnamectl 命令来设置你的新主机名。我们推荐直接设置为 FQDN。

sudo hostnamectl set-hostname k8s-node03.ilinux.io

这个命令会:

  • 立即将内核中的主机名修改为 k8s-node03.ilinux.io
  • 自动更新 /etc/hostname 文件,确保重启后主机名依然生效。

2. 验证更改

你可以使用 hostnamectlhostname 命令来验证更改是否成功。

hostnamectl
hostname
方法二:修改 /etc/hosts 文件(重要步骤!)

hostnamectl 命令虽然强大,但它不会修改 /etc/hosts 文件。这个文件用于将 IP 地址映射到主机名,是本地 DNS 解析的关键。若不更新它,一些服务(如 sudo、某些网络服务)可能无法正确解析本机主机名,导致奇怪的错误。

1. 编辑 /etc/hosts 文件

使用你喜欢的文本编辑器打开文件:

sudo nano /etc/hosts

2. 添加长短主机名映射

找到 127.0.1.1 这一行,确保它同时包含你的 FQDN 和短主机名。

修改前:

127.0.0.1   localhost
127.0.1.1   ubuntu-server

修改后:

127.0.0.1   localhost
127.0.1.1   k8s-node03.ilinux.io k8s-node03

重要说明:关于 127.0.1.1 的混淆点

在许多 Linux 发行版中,主机名通常映射到 127.0.0.1。但对于 Ubuntu 来说,官方约定使用 127.0.1.1 来专门映射主机名,而 127.0.0.1 仅用于 localhost。这样做是为了避免某些依赖网络服务的程序在解析时产生冲突,是 Ubuntu 的最佳实践。


将 FQDN 和短主机名放在同一行,并用空格分隔。这样做的好处是,无论是哪个程序查询主机名,都能正确地解析到本地地址,确保所有服务都能正常运行。

关于临时修改

如果你只是想在当前会话中临时更改主机名进行测试,可以使用 hostname 命令。但请注意,这种方式不会修改任何配置文件,重启后会恢复原状,因此不推荐用于生产环境。

sudo hostname 新主机名
总结

正确配置 Ubuntu 主机名需要两个关键步骤:

  1. 使用 sudo hostnamectl set-hostname FQDN 设置静态主机名。
  2. 手动修改 /etc/hosts 文件,将 FQDN 和短主机名都映射到 127.0.1.1

遵循这个流程,你的 Ubuntu 服务器将在任何网络环境中都拥有一个健壮且可用的主机名。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/94031.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/94031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++ 协程:Stackful 手动控制的工程必然性

🚀 C/C 协程:Stackful 手动控制的工程必然性 引用: C/C 如何正确的切换协同程序?(基于协程的并行架构) #mermaid-svg-SXgplRf3WRYc8A7l {font-family:"trebuchet ms",verdana,arial,sans-serif;…

新手向:使用STM32通过RS485通信接口控制步进电机

新手向:使用STM32通过RS485通信接口控制步进电机 准备工作 本文使用的STM32芯片是STM32F407ZGTx,使用的电机是57步进电机,驱动器是用的是时代超群的RS485总线一体化步进电机驱动器(42 型:ZD-M42P-485)。使…

设计模式笔记_行为型_命令模式

1.命令模式介绍命令模式(Command Pattern)是一种行为设计模式,它将请求或操作封装为对象,使得可以用不同的请求对客户端进行参数化。命令模式的核心思想是将方法调用、请求或操作封装到一个独立的命令对象中,从而使得客…

详解MySQL中的多表查询:多表查询分类讲解、七种JOIN操作的实现

精选专栏链接 🔗 MySQL技术笔记专栏Redis技术笔记专栏大模型搭建专栏Python学习笔记专栏深度学习算法专栏 欢迎订阅,点赞+关注,每日精进1%,与百万开发者共攀技术珠峰 更多内容持续更新中!希望能给大家带来…

vue3+elemeent-plus, el-tooltip的样式修改不生效

修改后的样式&#xff0c;直接贴图&#xff0c;经过删除出现悬浮1、在书写代码的时候切记effect“light”&#xff0c;如果你需要的是深色的样式:disabled"!multiple" 是否禁用<el-tooltip effect"light" placement"top" content"请先选…

网页作品惊艳亮相!这个浪浪山小妖怪网站太治愈了!

大家好呀&#xff01;今天要给大家分享一个超级治愈的网页作品——浪浪山小妖怪主题网站&#xff01;这个纯原生开发的项目不仅颜值在线&#xff0c;功能也很能打哦&#xff5e;至于灵感来源的话&#xff0c;要从一部动画说起。最近迷上了治愈系动画&#xff0c;就想做一个温暖…

搭建最新--若依分布式spring cloudv3.6.6 前后端分离项目--步骤与记录常见的坑

首先 什么拉取代码&#xff0c;安装数据库&#xff0c;安装redis&#xff0c;安装jdk这些我就不说了 导入数据库 &#xff1a;数据库是分库表的 &#xff0c;不要建错了 【一定要注意&#xff0c;不然nacos读取不到配置文件】这个是给nacos用的这个是给项目配置或项目用的2. 服…

分布式唯一 ID 生成方案

在复杂分布式系统中&#xff0c;往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中&#xff0c;数据日渐增长&#xff0c;对数据分库分表后需要有一个唯一 ID 来标识一条数据或消息&#xff0c;数据库的自增 ID 显然不能…

飞算JavaAI赋能高吞吐服务器模拟:从0到百万级QPS的“流量洪峰”征服之旅

引言&#xff1a;当“流量洪峰”来袭&#xff0c;如何用低代码驯服高并发&#xff1f; 在数字化时代&#xff0c;从电商平台的“双11”大促到社交网络的突发热点事件&#xff0c;再到金融系统的实时交易高峰&#xff0c;服务器时刻面临着**高吞吐量&#xff08;High Throughput…

C#数据访问帮助类

一.中文注释using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.Collections;namespace Microsoft.ApplicationBlocks.Data.Ch {/// <summary>/// SqlServer数据访问帮助类/// </summary>public sealed class SqlHelp…

B站 韩顺平 笔记 (Day 21)

目录 1&#xff08;面向对象高级部分练习题&#xff09; 1.1&#xff08;题1&#xff09; 1.2&#xff08;题2&#xff09; 1.3&#xff08;题3&#xff09; Vehicles接口类&#xff1a; Horse类&#xff1a; Boat类&#xff1a; Plane类&#xff1a; VehiclesFactory…

Linux(十四)——进程管理和计划任务管理

文章目录前言一、程序与进程的关系1.1 程序与进程的定义1.2 父进程与子进程二、查看进程信息2.1 ps 命令&#xff08;重点&#xff09;2.2 动态查看进程信息top命令&#xff08;重点&#xff09;2.3 pgrep命令查询进程信息2.4 pstree命令以树形结构列出进程信息三、进程的启动方…

太阳光模拟器在无人机老化测试中的应用

在无人机技术飞速发展的当下&#xff0c;其户外作业环境复杂多变&#xff0c;长期暴露在阳光照射下&#xff0c;部件老化问题日益凸显&#xff0c;严重影响无人机的性能与寿命。紫创测控Luminbox专注于太阳光模拟器技术创新与精密光学测试系统开发&#xff0c;其涵盖的 LED、卤…

网络原理-TCP_IP

1.UDP&#xff08;即用户数据报协议&#xff09;UDP是一种无连接的传输层协议&#xff0c;提供简单的、不可靠的数据传输服务。它不保证数据包的顺序、可靠性或重复性&#xff0c;但具有低延迟和高效率的特点。UDP协议段格式16位UDP⻓度,表⽰整个数据报(UDP⾸部UDP数据)的最⼤⻓…

GitHub Actions YAML命令使用指南

version: 2 updates:- package-ecosystem: "github-actions"directory: "/"schedule:interval: "weekly"这段代码是 Dependabot 的配置文件&#xff08;通常放在 .github/dependabot.yml 中&#xff09;&#xff0c;它的作用是 自动化管理 GitHu…

决策树算法学习总结

一、经典决策树算法原理 &#xff08;一&#xff09;ID3 算法 核心思想&#xff1a;以 “信息增益” 作为划分属性的选择标准&#xff0c;通过最大化信息增益来提升数据集的 “纯度”。 关键概念 —— 信息增益&#xff1a;指某个属性带来的 “熵减”&#xff08;即纯度提升量&…

内网安全——出网协议端口探测

在实战中难免会遇到各种各样的情况&#xff0c;其中对于目标主机是否出网这是一个十分值得收集的信息&#xff0c;因为完全不出网你就获取不到主机了 端口 Linux 系统 对于 Linux 系统&#xff0c;探测其允许出网的端口&#xff0c;这里使用的是 Linux 的自带命令&#xff0c;所…

C#WPF实战出真汁13--【营业查询】

1、营业查询介绍本模块是最后一个模块&#xff0c;该板块需要的功能有&#xff1a;营业数据列表&#xff0c;查询数据&#xff0c;导出数据&#xff0c;数据统计。2、UI设计布局TabControl 是 WPF 中用于创建多页标签式界面的控件&#xff0c;常用于组织多个子内容区域。每个子…

基于 Java 和 MySQL 的精品课程网站

基于 Java 和 MySQL 的精品课程网站设计与实现一、 毕业设计&#xff08;论文&#xff09;任务书摘要&#xff1a;近年来&#xff0c;教育信息化发展十分迅猛&#xff0c;人们的教育观念、教育手段、学习方法、学习渠道等等都发生了重大的变化。知识性人才也已经日益成为了一个…

全球首款 8K 全景无人机影翎 A1 发布解读:航拍进入“先飞行后取景”时代

全球首款 8K 全景无人机影翎 A1 发布解读&#xff1a;航拍进入“先飞行后取景”时代 特别说明&#xff1a;本文所有图片素材来源于影翎官网 影翎官方介绍称&#xff1a;“全球首款”是指截至 2025 年&#xff0c;A1 是首台全面整合的全景无人机&#xff1a;无需外挂全景相机配件…