Windows 10 Pro,Active Directory。我正在尝试运行Mathworks Matlab分布式计算。该软件与另一台计算机上的进程通信,但停止并显示“主机名解析为回送地址”。 Mathworks让我尝试了一些东西。将回送地址127.0.0.1分配给HOSTS文件中的主机名。在HOSTS文件中分配主机名的实际(DHCP)IP地址。删除了IPv6。设置环境变量FNP_IP_ENV = 1。这些都不起作用。其他软件中是否出现错误“主机名解析为回送地址”?
我遇到了同样的问题,并且能够解决。我的群集是Linux(Ubuntu 18.04),Windows 7和Windows 10 Pro的混合体。我最初遇到的问题是,在同一台计算机上ping通时,主机名将解析为ipv4环回地址127.0.0.1。通过在每台计算机上的hosts文件中添加一行格式为192.168.0.XX主机名的行,此问题已在Linux计算机和Windows 7上得到了解决。其中XX是该计算机在我的LAN上的实际保留IP结尾,主机名是有问题的计算机的主机名。如果您已经添加了该地址,但在ping主机名后仍然获得ipv4回送,则应检查Windows是否忽略了您的hosts文件。如果格式,文件权限,空格等不完全正确,Windows可以忽略它。有关此问题的更多疑难解答,请参见https://serverfault.com/questions/452268/hosts-file-ignored-how-to-troubleshoot。查看是否被忽略的一个简单测试是添加以下形式的另一项:
192.168.0.XX hostname2
即(网络上其他一些组成的IP地址)(组成主机名)
然后ping主机名2。如果IP已组成,您将不会得到答复,但是您仍然应该能够看到该名称正在解析为您在hosts文件中输入的IP。如果没有,则主机未在处理中。主机文件更改应立即生效。
即使在我的主机文件正确设置了ipv4地址之后,在Windows 10上我也遇到了类似的问题,除了在这种情况下,即使我禁用了ipv6,它也可以解析为ipv6回送地址::: 1。显然,即使为外部LAN通信禁用了ipv6,ipv6环回网络适配器也始终处于活动状态。通过在命令窗口中使用netsh编辑前缀策略,可以通过将ipv4设置为计算机的首选协议来解决此问题。
就我而言,我使用的命令是:
netsh int ipv6 set prefixpolicy ::/0 32 1
netsh int ipv6 set prefixpolicy ::1/128 33 0
这些将ipv6和ipv6回送设置为比ipv4默认优先级(35)低的优先级(分别为32和33)。
这里是修改前的标准前缀策略,顶部是ipv6:
C:\WINDOWS\system32>netsh interface ipv6 show prefixpolicies
Querying active state...
Precedence Label Prefix
---------- ----- --------------------------------
50 0 ::1/128
40 1 ::/0
35 4 ::ffff:0:0/96
30 2 2002::/16
5 5 2001::/32
3 13 fc00::/7
1 11 fec0::/10
1 12 3ffe::/16
1 3 ::/96
这是上面2条命令之后的策略,其中ipv6在ipv4之下:
C:\WINDOWS\system32>netsh interface ipv6 show prefixpolicies
Querying active state...
Precedence Label Prefix
---------- ----- --------------------------------
35 4 ::ffff:0:0/96
33 0 ::1/128
32 1 ::/0
30 2 2002::/16
5 5 2001::/32
3 13 fc00::/7
1 11 fec0::/10
1 12 3ffe::/16
1 3 ::/96
此线程具有有关前缀策略的更多信息:https://superuser.com/questions/436574/ipv4-vs-ipv6-priority-in-windows-7
经过这些更改后,我检查了在同一台计算机上对每台计算机自己的主机名执行ping操作后,返回保留的ipv4网络地址,并从Matlab并行服务器管理中心重新运行了“测试连接”测试,并且没有更多错误。之后,我的集群正常工作,没有错误。