Existe outro local para hospedar / nome da máquina?

-1

Eu tenho uma máquina VirtualBox clonada que pedi para limpar o endereço MAC após a clonagem. O nome da máquina foi alterado de "node01" para "new-host-7.home" e mudei para "node02" usando métodos convencionais (hostname, change in traditional files, etc ...). Tudo parece ser alterado até que meu programa Java obtenha o antigo nome da máquina ...

Meu arquivo / etc / hosts:

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

Meu arquivo / etc / hostname:

node02

Meu prompt:

root@node02:/

Mas quando eu inicio um programa em Java que pede o nome da máquina, estou recebendo o nome antigo da máquina:

new-host-7.home

Aqui está como eu recebi este nome:

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

O método:

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;
} 

Não sei se o AskUbuntu é o melhor lugar para essa pergunta ou o StackOverflow.

TIA.

EDITAR:

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
    
por Magno C 17.04.2016 / 21:06

1 resposta

2

Com base nas atualizações da pergunta inicial, você pode ver que o comando IP está retornando 192.168.25.26 como o endereço IP em uso, mas você ainda não definiu um nome de host neste endereço IP.

/etc/hosts precisa da seguinte entrada:

192.168.25.26 node02.home

Após a reinicialização, você verá o DNS em sua atualização de rede e seu código Java retornará o nome do host correto.

    
por NGRhodes 17.04.2016 / 22:48