解决 Ubuntu 24.04 虚拟机内无法ping 通 Hostname 的问题
问题背景
在 VMware 或 VirtualBox 中安装 Ubuntu 24.04 虚拟机时,遇到无法通过主机名(Hostname)进行网络通信的问题。例如,将虚拟机的主机名设置为 001
,执行 ping 001
时返回 ping 0.0.0.1
并超时。此问题通常由 主机名格式不规范 或 网络配置错误 引发。本文将详细分析原因并提供完整的解决方案。
一、问题原因分析
1. Hostname 格式不规范
Linux 系统对主机名的命名有明确规范(遵循 RFC 952 和 RFC 1123):
- 合法字符:字母(a-z, A-Z)、数字(0-9)、连字符(
-
)。 - 禁止规则:
- 不能全为数字(如
001
); - 不能以连字符开头或结尾;
- 长度不超过 63 个字符。
- 不能全为数字(如
问题根源:
若主机名为全数字(如 001
),某些网络工具(如 ping
、nslookup
)可能将其误认为是 IP 地址片段,导致解析错误。例如:
ping 001 # 可能被解析为 0.0.0.1(非法IP)
2. 网络配置错误
即使主机名格式正确,以下配置问题仍可能导致通信失败:
/etc/hosts
文件格式错误或未绑定主机名与 IP;- DNS 解析失败或未配置;
- 虚拟机网络模式设置错误(如 NAT 模式下宿主机无法直接访问虚拟机)。
- /etc/nsswitch.conf 文件的配置问题
二、解决步骤
步骤 1:检查并修正 Hostname 格式
1.1 检查当前 Hostname
hostnamectl
若输出显示主机名为全数字(如 Static hostname: 001
),需修改为合法格式(如 vm-001
)。
1.2 修改 Hostname
# 设置新主机名(需包含字母)
sudo hostnamectl set-hostname vm-001# 重启生效
sudo reboot
1.3 验证修改
hostname # 应输出 vm-001
步骤 2:检查或者修改 配置 /etc/hosts
文件
编辑 /etc/hosts
,确保主机名绑定到正确的 IP 地址(通常是 127.0.1.1
):
sudo vim /etc/hosts
修正后的内容:
127.0.0.1 localhost
127.0.1.1 vm-001 # 主机名必须与 hostnamectl 一致
步骤3: 验证主机名解析
使用以下命令验证 /etc/hosts 文件的解析是否正常:
getent hosts 001
预期输出:
127.0.1.1 001
步骤4: 检查 /etc/nsswitch.conf 文件
确保 /etc/nsswitch.conf 文件中的 hosts 行配置为:
hosts: files dns
这表示系统会优先从 /etc/hosts 文件中解析主机名,如果找不到,再通过 DNS 解析。
步骤5: 检查 DNS 解析
使用以下命令测试 DNS 解析:
# vm-001 替换为设置的hostname
nslookup vm-001
如果输出为:
Address: 127.0.1.1
说明 DNS 解析正常。如果输出为空或错误,说明 DNS 服务器没有正确解析 001 的主机名。
步骤 6:检查网络模式与 DNS
6.1 设置桥接模式(推荐)
- VMware:虚拟机设置 → 网络适配器 → 桥接模式。
- VirtualBox:设置 → 网络 → 连接方式 → 桥接网卡。
6.2 配置静态 IP(可选)
编辑 Netplan 配置文件(如 /etc/netplan/00-installer-config.yaml
):
network:version: 2ethernets:ens33:dhcp4: noaddresses: [192.168.1.100/24]routes:- to: defaultvia: 192.168.1.1nameservers:addresses: [8.8.8.8, 1.1.1.1]
应用配置:
sudo netplan apply
6.3 验证 DNS 解析
ping google.com # 测试外网连通性
步骤 7:验证主机名解析
在虚拟机内执行:
ping vm-001 # 应解析到 127.0.1.1 或静态 IP
预期输出:
PING vm-001 (127.0.1.1) 56(84) bytes of data.
64 bytes from vm-001 (127.0.1.1): icmp_seq=1 ttl=64 time=0.024 ms
三、故障排查表
现象 | 可能原因 | 解决方案 |
---|---|---|
ping 001 解析到 0.0.0.1 | Hostname 全数字且未绑定 IP | 修改为合法格式并更新 /etc/hosts |
宿主机无法访问虚拟机 | 网络模式为 NAT 或 Host-Only | 切换为桥接模式,配置静态 IP 和 DNS |
虚拟机无网络访问 | DNS 配置错误或防火墙拦截 | 检查 /etc/resolv.conf 和防火墙规则 |
四、总结
- Hostname 格式规范:避免全数字命名,使用字母开头(如
vm-001
)。 - 网络配置要点:
- 绑定主机名到
127.0.1.1
或静态 IP; - 配置可靠的 DNS 服务器(如
8.8.8.8
)。
- 绑定主机名到
- 验证工具:
hostnamectl
检查主机名;ip a
查看 IP 地址;ping
和nslookup
测试解析。
通过规范命名和正确配置,可彻底解决因主机名格式或网络设置导致的通信问题。
good day!!!
相关文章:
解决 Ubuntu 24.04 虚拟机内无法ping 通 Hostname 的问题
问题背景 在 VMware 或 VirtualBox 中安装 Ubuntu 24.04 虚拟机时,遇到无法通过主机名(Hostname)进行网络通信的问题。例如,将虚拟机的主机名设置为 001,执行 ping 001 时返回 ping 0.0.0.1 并超时。此问题通常由 主机…...

给小白的oracle优化工具,了解一下
有时懒得分析或语句太长,可以尝试用oracle的dbms_sqldiag包进行sql优化, --How To Use DBMS_SQLDIAG To Diagnose Query Performance Issues (Doc ID 1386802.1) --诊断SQL 性能 SET ECHO ON SET LINESIZE 132 SET PAGESIZE 999 SET LONG 999999 SET SER…...

CT技术变迁史——CT是如何诞生的?
第一代CT(平移-旋转) X线球管为固定阳极,发射X线为直线笔形束,一个探测器,采用直线和旋转扫描相结合,即直线扫描后,旋转1次,再行直线扫描,旋转180完成一层面扫描,扫描时间3~6分钟。矩阵象素256256或320320。仅用于颅脑检查。 第二代CT (平移-旋转) 与第一代无质…...
【PHP脚本语言详解】为什么直接访问PHP文件会显示空白?从错误示例到正确执行!
前言 作为一名开发者,你是否曾经遇到过这样的问题:写了一个PHP脚本,放到服务器根目录后,直接通过file:///路径访问却显示空白页面?而换成http://localhost却能正常显示?这篇文章将带你深入理解PHP脚本语言…...
软件工程---需求工程
软件需求工程师发现、获取、组织、分析、编写和管理需求的系统方法,以使客户和项目组之间达成共识。 需求工程共包含五个步骤: 需求获取:对业务问题分析,与项目干系人沟通,以理解系统的目标、期望和约束,…...

spring注解开发(Spring整合MyBatis——Mapper代理开发模式、(Spring、MyBatis、Jdbc)配置类)(6)
目录 一、纯MyBatis独立开发程序。 (1)数据库与数据表。 (2)实体类。 (3)dao层接口。(Mapper代理模式、无SQL映射文件——注解配置映射关系) (4)MyBatis核心配…...
散户情绪周期模型(情绪影响操作)
目录 一、个股上涨阶段情绪演化二、个股下跌阶段情绪演化三、底部震荡阶段情绪演化四、情绪观察与操作工具箱1. 情绪自测量表(每日收盘后记录)2. 情绪-指标对照表 五、高阶情绪管理技巧1.认知重构训练2.生理指标监控(需配合智能手表ÿ…...

计算机毕业设计SpringBoot+Vue.js网上商城系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

自动化测试无法启动(java.net.SocketException)
在运行测试代码,对浏览器进行自动化操作时,遇到了以下问题,添加依赖,编写了测试代码,但是程序无法运行 这个有两种原因(我使用的是谷歌浏览器): 网络问题: 因为需要从GitHub上下载对应包,所以有时候可能会出现网络问题,这个时候可以打开VPN之后,重新对程序进行启动 浏览器版本…...

智能机器人加速进化:AI大模型与传感器的双重buff加成
Deepseek不仅可以在手机里为你解答现在的困惑、占卜未来的可能,也将成为你的贴心生活帮手! 2月21日,追觅科技旗下Dreamehome APP正式接入DeepSeek-R1大模型,2月24日发布的追觅S50系列扫地机器人也成为市面上首批搭载DeepSeek-R1的…...

osgEarth安装总结
第一步:安装OSG 直接通过git下载源码,使用cmake进行编译, git clone --depth 1 https://github.com/openscenegraph/OpenSceneGraph.git mkdir build cd build cmake .. make sudo make isntall编译过程中缺什么库,就安装什么库 …...
Java多线程与高并发专题——从AQS到ReentrantLock
关于AQS AQS就是AbstractQueuedSynchronizer抽象类,AQS其实就是JUC包下的一个基类,JUC下的很多内容都是基于AQS实现了部分功能,比如ReentrantLock,ThreadPoolExecutor,阻塞队列,CountDownLatch,…...

力扣 寻找重复数
二分,双指针,环形链表。 题目 不看完题就是排序后,用两个快慢指针移动,找到相同就返回即可。 class Solution {public int findDuplicate(int[] nums) {Arrays.sort(nums);int l0;int r1;while(r<nums.length){if(nums[l]num…...

第48天:Web开发-JavaEE应用依赖项Log4j日志Shiro验证FastJson数据XStream格式
#知识点 1、安全开发-JavaEE-第三方依赖开发安全 2、安全开发-JavaEE-数据转换&FastJson&XStream 3、安全开发-JavaEE-Shiro身份验证&Log4j日志处理 一、Log4j 一个基于Java的日志记录工具,当前被广泛应用于业务系统开发,开发者可以利用该工…...
ES6笔记总结
首先我们需要了解一下什么是 ECMA: ECMA(European Computer Manufacturers Association)中文名称为欧洲计算机制造商协会,这 个组织的目标是评估、开发和认可电信和计算机标准。1994 年后该组织改名为 Ecma 国际 什么是 ECMAScr…...

使用Docker Desktop部署GitLab
1. 环境准备 确保Windows 10/11系统支持虚拟化技术(需在BIOS中开启Intel VT-x/AMD-V)内存建议≥8GB,存储空间≥100GB 2. 安装Docker Desktop 访问Docker官网下载安装包安装时勾选"Use WSL 2 instead of Hyper-V"(推荐…...
经典算法 统计数字问题(常数时间解决)
统计数字问题 一本书的页码从自然数1 开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6 页用数字6 表示,而不是06 或006 等。数字计数问题要求对给定书的总页码n,计算出书的全部页…...

基于yolov8的糖尿病视网膜病变严重程度检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面
【算法介绍】 基于YOLOv8的糖尿病视网膜病变严重程度检测系统 基于YOLOv8的糖尿病视网膜病变严重程度检测系统是一款利用深度学习技术,专为糖尿病视网膜病变早期诊断设计的智能辅助工具。该系统采用YOLOv8目标检测模型,结合经过标注和处理的医学影像数…...
AcWing 5933:爬楼梯 ← 递归 / 递推 / 高精度
【题目来源】 https://www.acwing.com/problem/content/5936/ 【题目描述】 树老师爬楼梯,他可以每次走 1 级或者 2 级,输入楼梯的级数,求不同的走法数。 例如:楼梯一共有 3 级,他可以每次都走一级,或者第…...
c++ 中的容器 vector 与数组 array
当初自学 c 与 c 语言时,一直被指针弄的云里雾里。后来 c 中引入了容器,避免了指针。但是,一些教材把容器的章节放在书本中后面的章节,太不合理。应该把这种方便的功能放到前面,这样一些初学者就不会遇到太多生硬难懂的…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...