호스트 / 컴퓨터 이름이있는 다른 장소가 있습니까?


-1

복제 후 MAC 주소를 지우도록 요청한 복제 된 VirtualBox 시스템이 있습니다.컴퓨터 이름은 "node01"에서 "new-host-7.home"으로 변경되었으며 일반적인 방법 (호스트 이름, 기존 파일 변경 등)을 사용하여 "node02"로 변경했습니다.Java 프로그램이 이전 컴퓨터 이름을 얻을 때까지 모두 변경 된 것 같습니다 ...

/ etc / hosts 파일 :

127.0.0.1       node02.home     node02  localhost
192.168.25.25   node01.home     node01
192.168.25.27   node03.home     node03

내 / etc / hostname 파일 :

node02

내 프롬프트 :

[email protected]:/

하지만 컴퓨터 이름을 묻는 Java 프로그램을 시작하면 이전 컴퓨터 이름이 나타납니다.

new-host-7.home

이름은 다음과 같습니다.

InetAddress ip = getFirstNonLoopbackAddress(true, false);
this.machineName = ip.getCanonicalHostName();

방법 :

private InetAddress getFirstNonLoopbackAddress(boolean preferIpv4, boolean preferIPv6) throws SocketException {
    Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
    while (en.hasMoreElements()) {
        NetworkInterface i = en.nextElement();
        for (Enumeration<InetAddress> en2 = i.getInetAddresses(); en2.hasMoreElements();) {
            InetAddress addr = en2.nextElement();
            if (!addr.isLoopbackAddress()) {
                if (addr instanceof Inet4Address) {
                    if (preferIPv6) {
                        continue;
                    }
                    return addr;
                }
                if (addr instanceof Inet6Address) {
                    if (preferIpv4) {
                        continue;
                    }
                    return addr;
                }
            }
        }
    }
    return null;
} 

AskUbuntu가이 질문이나 StackOverflow에 더 적합한 곳인지 모르겠습니다.

TIA.

수정 :

ip -o a

1: lo    inet 127.0.0.1/8 scope host lo\       valid_lft forever preferred_lft forever
2: enp0s3    inet 192.168.25.26/24 brd 192.168.25.255 scope global enp0s3\       valid_lft forever preferred_lft forever

getent hosts

127.0.0.1       node02.home node02 localhost
192.168.25.25   node01.home node01
192.168.25.27   node03.home node03
127.0.0.1       localhost ip6-localhost ip6-loopback
2

Based on the updates to the initial question, you can see the IP command is returning 192.168.25.26 as the IP address in use, yet you have not defined a hostname on this ip address.

/etc/hosts needs the following entry:

192.168.25.26 node02.home

After a restart you should see the DNS on your network update and your Java code return the correct hostname.