Linux系统主机名变成bogon的解决方法

2024-04-25 17:38

本文主要是介绍Linux系统主机名变成bogon的解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 问题描述

虚拟机安装Linux系统,版本为CentOS 7.2,主机名之前设置为自定义的名字(CentOS-Y)。最近启动系统,突然发现主机名变成了bogon。
查看vim /etc/sysconfig/network 配置,发现里面HOSTNAME值正常。查看vim /etc/hosts 也没有异常。

  • 问题原因

通过百度搜索以下相关资料:

bogon是什么?
bogon是指那些不该出现在internet路由表中的地址,包括:
1、私有地址如10,172.16-32,192.168…..
2、还未正式分配出去的地址

bogon怎么来的?
linux系统在启动时,会经历BOIS自检、系统引导、启动内核、初始化系统这几步 ,其中初始化系统时,会依次执行/etc/rc.sysinit,/etc/rc.d/rc* 等脚本文件,其中在rc.sysinit有这样 一段代码:

if [ "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "localhost.localdomain" ]; then  ipaddr=$(ip addr show to 0.0.0.0/0 scope global | awk '/[[:space:]]inet / { print gensub("/.*","","g",$2) }')  for ip in $ipaddr ; do  HOSTNAME=  eval $(ipcalc -h $ip 2>/dev/null)  [ -n "$HOSTNAME" ] && { hostname ${HOSTNAME} ; break; }  done  fi

这段代码先判断了主机名,如果主机名是localhost或者localhost.localdomain,则获取主机IP地址并执行DNS逆向解析,将解析到的结果赋值给HOSTNAME。如果执行以下命令

ipcalc -h 你的IP

则可能你得到的结果就是bogon,这就是解析的结果。

  • 解决方案

1、使用hostname命令

[root@test ~]# hostname yourname

不过,这样只是临时更改了主机名,系统重启后失效。

2:修改linux主机的配置文件:/etc/sysconfig/network 和 /etc/hosts
①.修改/etc/sysconfig/network主机名。

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=<hostname> //在这修改你的主机名
GATEWAY=192.168.1.1 

②.修改/etc/hosts主机名

vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.99  <yourname> //在这修改主机名

不过,有时候可能只有这一行

127.0.0.1 <yourname> localhost.localdomain localhost

3、使用hostnamectl命令

在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(pretty)。
1.“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。
2.“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配。静态主机名和瞬态主机名都遵从作为互联网域名同样的字符限制规则。
3.“灵活”主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如Linuxidc)。

在命令行输入hostnamectl ,可以查看到hostname的三个状态

[root@centos-y ~]# hostnamectl Static hostname: bogonPretty hostname: bogonIcon name: computer-vmChassis: vmMachine ID: 599c56352f5b4539937e97d83802a559Boot ID: b8931498e16b4ae39b0d77a6c48c8d7bVirtualization: vmwareOperating System: CentOS Linux 7 (Core)CPE OS Name: cpe:/o:centos:centos:7Kernel: Linux 3.10.0-327.el7.x86_64Architecture: x86-64

使用hostnamectl命令,设置主机名

hostnamectl set-hostname CentOS-Y

输入hostnamectl命令,可看到主机名已改。

   Static hostname: centos-yPretty hostname: CentOS-YIcon name: computer-vmChassis: vmMachine ID: 599c56352f5b4539937e97d83802a559Boot ID: b8931498e16b4ae39b0d77a6c48c8d7bVirtualization: vmwareOperating System: CentOS Linux 7 (Core)CPE OS Name: cpe:/o:centos:centos:7Kernel: Linux 3.10.0-327.el7.x86_64Architecture: x86-64

重启系统,主机名已恢复正常。

  • 结语

关于问题原因,我也不是很懂,这里也没有去考证是否正确,或许还有别的原因。
对于我系统的问题,实际上前两种方式都无效,最后我是通过第三种方式得以解决。在这里把这些方式一起做个总结记录,如果有问题,还请给我指出来。


转载请注明地址

参考资料:
http://blog.csdn.net/fangfang_666/article/details/55670911
http://blog.csdn.net/weiwan721/article/details/48463371

这篇关于Linux系统主机名变成bogon的解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/935353

相关文章

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav