Centos7主机名变成bogon的原因及解决方法
Centos7主机名变成bogon的原因及解决方法
问题描述
虚拟机在设置完静态IP后,莫名其妙地主机名就变成了bogon,并且问题会稳定复现,就是说每次重启都会。如下所示
[root@bogon ~]#
[root@bogon ~]# hostname
bogon
[root@bogon ~]#nslookup 192.168.0.118
118.0.168.192.in-addr.arpa name = bogon.
查看几个相关文件
[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
[root@localhost ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
network和hosts中的主机名都正常,都是localhost
原理分析
查了一些资料,bogon是指那些不该出现在internet路由表的地址。
Linux在初始化系统时,会先判断主机名,如果主机名是localhost或localhost.localdomain,则会获取主机IP地址并执行DNS逆向解析,将解析到的结果赋值给HOSTNAME。问题是,有些DNS服务器,会将私有地址,保留地址这样不应该出现在网络上的IP地址解析成bogon。
解决方案1(推荐)
值得推荐的方案就是让本地IP地址解析时不经过DNS服务器,直接使用hosts文件,直接将本机的IP地址解析为localhost。
具体的操作就是在/etc/hosts文件中追加一行:
192.168.196.3 localhost
上面代码中前半段是自己系统的本地IP地址。
修改后的文件内容如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.118 localhost myname
解决方案2
修改主机名,只要主机名不是localhost或者localhost.localdomain,操作系统就不会执行DNS反向解析等操作,问题自然也不会出现。
hostnamectl set-hostname myname
同样的,这个命令也需要手动更新/etc/hosts,方法跟上面的一样。
最后还是一如既往地重启系统!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)