java getLocalHost() UnknownHostException /etc/hosts file differs linux api?
我有两台 redhat 6.3 机器,两台 /etc/hosts 都没有变化(即我没有为它们添加 IP 地址)。在我的机器上可以正常运行 getLocalhost 并返回主机名 a.domain.com。另一个因 UnknownHostException 而失败。
以前,我总是将 ip 添加到 /etc/hosts,但我想知道为什么这台机器不需要它。两台机器上的 /etc/nsswitch.conf 都有 "hosts: files dns",所以在两台机器上都是一样的。
/etc/sysconfig/network-scripts/ifcfg-eth0 脚本有很大不同。得到 UnknownHostException 的节点是这样的
1 2 3 4 5 6 7 | DEVICE="eth0" BOOTPROTO="static" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" IPADDR=10.10.1.5 PREFIX=23 |
有效的有这样的东西......
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | DEVICE="eth0" HWADDR="AA:AA:AA:AA:3F:A8" NM_CONTROLLED="yes" ONBOOT=yes TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" IPADDR=10.10.1.2 PREFIX=23 GATEWAY=10.10.1.1 DNS1=10.20.100.100 DNS2=10.20.100.101 DOMAIN="domain.com sub.domain.com" |
这可能是原因吗?或者我可以查看哪些其他文件以了解为什么这不起作用?我假设 java 正在对机器进行一些 linux getLocalHost api 调用以获取主机名。
谢谢,
院长
啊,我偶然发现了不同之处。在我的 /etc/sysconfig/network 文件中,我在工作机器上有 FQDN,但在另一台机器上,我只有主机名 "b",因此将其更改为 "b.domain.com" 解决了问题而且我根本不需要修改我的 /etc/hosts 文件!!!
院长