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) (主機名)
保存后退出,然后重啟服務即可
