想问问为嘛 CentOS7 上编辑了 hosts 文件后添加了 ip 映射但是不起作用

2023-03-10 19:30:36 +08:00
 summerlv
情况是这样的:
最近在学习 Hadoop ,然后搭建了三台虚拟机,在每台虚拟机上编辑 hosts 文件会出现以下问题:
1. vim /etc/hosts 时,会先让输入密码。
2. 输入 root 用户密码后会左下方会提示[只读]-[已加密] 字样
3. 将写好的 ip 与主机名映射添加到 hosts 文件后没效果
比如我添加
192.168.1.11 hadoop1
192.168.1.12 hadoop2

这时候我在 hadoop1 上 ping hadoop2 会提示找不到主机...
但是我直接 ping 192.168.1.12 是可以 ping 通的。

求大佬指明下,浏览器也搜了,ChatGPT 也问了,都没解决,只好发帖问问了。
1220 次点击
所在节点    程序员
20 条回复
summerlv
2023-03-10 19:34:10 +08:00
4. 输入 root 用户密码后进入 hosts 会看到一些不知道是乱码还是被加密后的一些文本。
hefish
2023-03-10 19:34:57 +08:00
不是三台机器吗?怎么只写了两台的 IP ?
不是应该 sudo vi /etc/hosts 吗?
jimmy2010
2023-03-10 19:36:24 +08:00
是 Windows 下编辑后再传上去的吗?
summerlv
2023-03-10 19:38:32 +08:00
@hefish
关于 ip 罗列的问题,这个没关系,我只是简单罗列了下说明下问题而已;

另外,sudo vi /etc/hosts 也试过,进去添加后也没效果,况且不管是在 root 用户登录的情况下还是普通用户登录的情况下进入 hosts 都需要输入 root 用户的密码。
summerlv
2023-03-10 19:39:17 +08:00
@jimmy2010 不是,是直接在 VMware 上装的 centos7 上直接编辑的
pengtdyd
2023-03-10 19:39:25 +08:00
hostname 没改
summerlv
2023-03-10 19:41:08 +08:00
@pengtdyd
改了的,hostname 都是改了的,比如 hadoop1 对应的就是 192.168.1.11 ,hadoop2 对应的就是 192.168.1.12
pengtdyd
2023-03-10 19:42:34 +08:00
hostnamectl 执行这个命令看看
summerlv
2023-03-10 19:45:44 +08:00
@pengtdyd 执行情况如下:
[lv@hadoop102 bin]$ hostnamectl
Static hostname: hadoop102
Icon name: computer-vm
Chassis: vm
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1160.el7.x86_64
Architecture: x86-64
-------------------------------------------------------------
[lv@hadoop103 bin]$ hostnamectl
Static hostname: hadoop103
Icon name: computer-vm
Chassis: vm
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1160.el7.x86_64
Architecture: x86-64
pengtdyd
2023-03-10 19:50:55 +08:00
你 Static hostname 是 hadoop102 ,从你的描述来看,你确定你 ping 对了?你从 hadoop102 这个主机 ping hadoop103 试试
summerlv
2023-03-10 19:55:22 +08:00
@pengtdyd
我的问题中描述的 ip 和主机名只是举例使用的,实际情况下,我从 hadoop102 上 ping hadoop103 是 ping 不通的,但是我在 hadoop102 上 ping 192.168.10.103 是可以 ping 通的
ik
2023-03-10 20:07:01 +08:00
@summerlv 我咋感觉你这是 hosts 文件没写进去呢
adoal
2023-03-10 20:27:04 +08:00
file /etc/hosts
cat /etc/hosts
都显示啥?我感觉像是某次编辑时在 vim 里不小心把文件加密了。
summerlv
2023-03-10 21:12:35 +08:00
[lv@hadoop102 bin]$ file /etc/hosts
/etc/hosts: Vim encrypted file data

看结果好像是加密了,但是我没做过这样的操作啊?


[lv@hadoop102 bin]$ cat /etc/hosts
▒▒[▒▒▒|▒▒i▒>ɸ6W▒▒▒.▒^r&▒$˂h$v'▒&▒]▒pO▒▒a▒▒▒▒C▒▒}8$▒▒▒▒▒
`▒ծ▒▒^*m▒▒▒W)C(^▒▒▒g▒▒▒▒C▒G▒,▒pj▒)▒_ex▒7׈7▒q▒s▒u-▒2|H▒▒▒n▒ Q=.K ▒J▒▒,▒▒▒V�?▒?NձjD▒µ▒!▒ ▒x[lv@hadoop102 bin]$


是因为 vim 加密了 hosts 文件,然后域名解析就解析不了里面的内容了吗?
pengtdyd
2023-03-10 21:31:42 +08:00
看看 hosts 文件的编码是不是有问题
wolfmei
2023-03-10 22:18:48 +08:00
删了直接新建一个
AngryPanda
2023-03-11 01:01:14 +08:00
hosts 文件还可以加密的嘛?
summerlv
2023-03-11 08:20:52 +08:00
@pengtdyd 怎么查看编码呢?
summerlv
2023-03-11 08:32:19 +08:00
哇塞,我终于解决了!!!
参考了这篇文章: https://www.lxlinux.net/547.html
实际情况就是 vim 把文件给加密了的原因导致 hosts 解析不了。
用 vim 设置不要密码就行了:

:set key=

然后保存下,这样就行了。
summerlv
2023-03-11 08:33:49 +08:00
@adoal 谢谢大佬的提示。现在在 hadoop102 上 ping hadoop103 可以 ping 通了,哈哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/922986

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX