我手头上有一个不寻常的问题,我两天都无法解决。
我的真机上运行着两个 KVM。其中一个被命名headnode
,第二个被命名computenode
。这些机器运行 CentOS 7,我的真机运行 Ubuntu 16。
我设置了/etc/hosts
包含其 IP 及其主机名的文件。它看起来像这样headnode
:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
127.0.1.1 headnode
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.192.122.101 computenode
10.42.0.45 MyMachine
问题是我无法通过 SSHheadnode
访问computenode
。通常是这样的:
[root@headnode ~]# ssh root@computenode
root@computenode's password:
Last login: Fri Aug 3 11:24:01 2018 from gateway
[root@headnode ~]#
你看到问题了吗?它一直保持着headnode
。首先想到的是我配置/etc/hosts
错误,但事实并非如此。我检查了20多次,甚至更多。我多次重新输入整个文件。它并不能解决问题。
我可以正常从头节点 ping 计算节点。
[root@headnode ~]# ping -c 3 computenode
PING computenode (127.192.122.101) 56(84) bytes of data.
64 bytes from computenode (127.192.122.101): icmp_seq=1 ttl=64 time=0.096 ms
64 bytes from computenode (127.192.122.101): icmp_seq=2 ttl=64 time=0.108 ms
64 bytes from computenode (127.192.122.101): icmp_seq=3 ttl=64 time=0.108 ms
--- computenode ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.096/0.104/0.108/0.005 ms
如您所见,它 ping 通了正确的 IP。
当我使用-v
SSH 选项时,它也证明它看起来连接到了正确的 IP:
debug1: Connecting to computenode [127.192.122.101] port 22.
debug1: Connection established.
我所看到的调试没有任何异常。
但是,当您观看audit.log
的文件时computenode
,它没有收到任何连接尝试!它消除了computenode
拒绝连接或建立隧道的可能性。
computenode
通过 SSH 连接到到headnode
或MyMachine
从其中任何一个连接到都没有问题。
这些是新机器,我只配置了/etc/hosts
, /etc/hostname
,/etc/sysconfig/network
仅添加 HOSTNAME 变量并/etc/sysconfig/network-scripts/ifcfg-eth0
更改 IP。
问题总结是,我认为headnode
解决了computenode
正确的IP,但随后连接回自身并且不向computenode
任何地方发送任何内容。
此外,我删除了所有 KVM 及其映像并设置了新的。又出事了!我添加了第三台机器,但那台机器没有发生这种情况。
我禁用了 NetworkManager 并将其停止,我禁用了防火墙。
我能直接使用computenode的IP从headnode到computenode的SSH:
ssh [email protected]
答案1
问题很简单,就是我在 /etc/hosts 中一遍又一遍地输入错误的 IP。可笑的是,我每次设置KVM时都会犯同样的错误,而且无论我检查多少次都没有注意到。
如果您遇到类似的问题,请阅读 /etc/hosts 文件中的每个字符,并要求您的同事也阅读它们。有时,你只是看不到。