首页 > 系统相关 >【Linux】Java获取Linux本机ip为127.0.0.1的解决方法

【Linux】Java获取Linux本机ip为127.0.0.1的解决方法

时间:2022-08-14 23:56:03浏览次数:81  
标签:127.0 Java 0.1 ip Linux 本机 localhost

前言

  • 参考博客:Java获取Linux本机ip为127.0.0.1的解决方法
  • 最近新部署了一台服务器,环境搭建好后,运行相应的项目代码时,发现项目获取的服务器IP地址不是我想要的
  • Java代码中使用了Inet4Address.getLocalHost().getHostAddress()方法自动获取本机IP,结果发现获取到的值是127.0.0.1,而不是对外的IP地址
  • 这里特此记录一下解决方法


原因

  • 因为Linux中会默认使用localhost作为默认的hostname名称,也就是本机的名称

    • 这里可以使用hostname命令查看当前服务器的名称
  • 而在/ect/hosts文件中,localhost也分别被映射到了ipv4和ipv6这两个ip地址上

    • [root@localdomain_5 ~]# cat /etc/hosts
      127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
      ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
      
  • 所以当我们在服务器中ping localhost时,实际解析得到的ip地址是/ect/hosts文件中映射的ipv4地址,也就是127.0.0.1

  • 因为Java获取IP时是通过本机hostname解析的,这也就解释了为什么在代码中使用Java Inet4api时获取到的ip地址不是我们想要的了

解决办法

  • 使用hostnamectl set-hostname命令手动指定本机名称, 避免与/ect/hosts文件中配置的名称重复
  • 这样我们在使用Inet4Address.getLocalHost().getHostAddress()方法就会被正确解析成对外的ip地址了
    • hostnamectl set-hostname xxxx
    • 可以使用ping xxxx来查看解析的ip地址,应该已不是127.0.0.1,而是对外ip

标签:127.0,Java,0.1,ip,Linux,本机,localhost
From: https://www.cnblogs.com/suhai/p/16586739.html

相关文章

  • linux文件描述符
    出现背景一个进程运行时要有输入和输出和其他的,输入就是写内存,输出就是读内存到IO设备,把这段写或读的内存叫做文件,所以就把一切IO设备都虚拟化为了一个文件,也就是一段内存......
  • Linux—磁盘管理
    Linux磁盘管理1、磁盘简介1.1认识磁盘磁盘是一种计算机的外部存储器设备,由一个或多个覆盖有磁性材料的铝制或玻璃制的碟片组成,用来存储用户的信息,这种信息可以反复地......
  • 【Linux】SELinux 临时、永久关闭
    目录前言首先,查看selinux状态第一种:临时关闭、开启SELinux第二种:永久关闭SELinux前言SELinux或增强安全性的Linux是提供访问控制安全策略的机制或安全模块。简而言之,它......
  • linux学习
    Linux1.概述是一个操作系统Linux和centos7的区别就像是windows和windows7的区别在服务器端,在开发领域Linux非常受欢迎服务器都是使用命令行的我们也就基于命令行来......
  • Windows下 git: Failed to connect to 127.0.0.1 port 1080: Connection refused报错
    问题git无法拉取代码,报错:Failedtoconnectto127.0.0.1port1081:Connectionrefused解决找到系统账户下.gitconfig文件,删除里面配置的代理,保存即可解决此问题本......
  • Linux免密登陆
    Linux之间免密登陆的方法CPP技术网 2022-06-2311:30 发表于湖北收录于合集#linux4个Linux之间免密登陆1.产生密钥ssh-keygen-trsa-P''-f~/.ssh/id_rsa......
  • Linux下部署Kubernetes+Kubesphere(一)Kubernetes基础
    Linux下部署Kubernetes+Kubesphere(一)Kubernetes基础Cloud研习社 2022-07-0318:36 发表于山东 以下文章来源于Dotnet技术进阶 ,作者车神neDotnet技术进阶..Ne......
  • 如何在Linux中按内存和CPU使用率查找运行次数最多的进程
    如何在Linux中按内存和CPU使用率查找运行次数最多的进程入门小站 入门小站 2022-07-1222:23 发表于湖北收录于合集#Linux478个#内存2个大多数Linux用......
  • Linux环境变量配置
    你不知道的Linux环境变量配置,建议收藏!悠悠 Cloud研习社 2022-07-1807:33 发表于山东收录于合集#实战经验31个#linux46个#计算机32个 Linux环境变量配......
  • 用10行shell脚本监控Linux
    用10行shell脚本监控Linux雷哥 Cloud研习社 2022-07-1513:36 发表于山东收录于合集#shell脚本6个#实战经验31个#linux46个 雷哥喊你回来复习shell脚本......