InetAddress.getLocalHost().getHostAddress()在windows下没问题,在linux下是根据主机名在hosts文件对应的ip来获取IP地址的
如果是默认情况下/etc/hosts文件中配置是
127.0.0.1 localhost localhost.localdomain
通过hostname指令可以获取主机名,会发现是localhost.localdomain
通过hostname -i可以看到对应的IP是127.0.0.1
所以默认情况下通过InetAddress.getLocalHost().getHostAddress()获取的就是127.0.0.1了
方法有两个:
1.修改/etc/hosts文件,指定一个新的IP给localhost.localdomain,改成:
127.0.0.1 localhost
(本机IP) localhost.localdomain
2.修改network文件
vi /etc/sysconfig/network
打开能看到如下配置:
NETWORKING=yes
HOSTNAME=localhost.localdomain
将localhost.localdomain改成想要修改的主机名
将/etc/hosts修改成(本机IP) (主机名)
保存后退出,然后重启服务即可