Como alterar o valor de 'ping de' ao pingar o servidor Linux?

3

O conteúdo do arquivo hostname no meu servidor é:

# cat /etc/hostname
sub.mysite.com

Mas quando eu ping meu servidor do CentOS 7 ele diz:

# ping sub.mysite.com
64 bytes from sub ...

Mesmo:

# ping ns1.mysite.com
    64 bytes from sub ...

Como posso dizer ao meu servidor para ter a seguinte saída quando pingar?

64 bytes from sub.mysite.com ...

UPDATE

Por exemplo, no meu cliente:

user@host:~$ ping ns1.mysite.com
PING ns1.mysite.com (x.x.x.x) 56(84) bytes of data.
64 bytes from sub (x.x.x.x): icmp_seq=1 ttl=56 time=7.88 ms
64 bytes from sub (x.x.x.x): icmp_seq=2 ttl=56 time=5.86 ms
64 bytes from sub (x.x.x.x): icmp_seq=3 ttl=56 time=4.99 ms
64 bytes from sub (x.x.x.x): icmp_seq=4 ttl=56 time=4.88 ms

Eu quero ter o nome completo do host (sub.mysite.com) em vez de sub .

    
por yasin 15.07.2018 / 07:53

1 resposta

3

ping não usa /etc/hostname para resolver IP para mapeamentos de nomes, ele usa o Serviço de nomes ( netns ) para fazer essas traduções. Incidentalmente, /etc/hostname faz parte do systemd:

$ rpm -qf /etc/hostname
systemd-219-42.el7_4.10.x86_64

Esse nome abreviado que você está vendo, sub , vem do seu arquivo /etc/hosts por meio do Serviço de nomes. Se você usa strace , pode ver como ping está encontrando sub :

$ strace -s 2000 ping -c1 www.google.com |& grep /etc/host
open("/etc/host.conf", O_RDONLY|O_CLOEXEC) = 4
open("/etc/hosts", O_RDONLY|O_CLOEXEC)  = 4
open("/etc/hosts", O_RDONLY|O_CLOEXEC)  = 4

Portanto, a maneira fácil de resolver seu problema é colocar o nome do seu servidor como você deseja que ping exiba no seu arquivo /etc/hosts .

Exemplo

$ ping -c1 www.google.com
PING www.google.com (74.125.141.99) 56(84) bytes of data.
64 bytes from vl-in-f99.1e100.net (74.125.141.99): icmp_seq=1 ttl=63 time=109 ms

--- www.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 109.903/109.903/109.903/0.000 ms
Now if we were to add that IP, 74.125.141.103, to your '/etc/hosts' file we could manipulate 'ping' into showing whatever we want for it:

Adicione isso a /etc/hosts :

74.125.141.99  blah.blah.com

Agora repita nosso teste:

$ ping -c1 www.google.com
PING www.google.com (74.125.141.99) 56(84) bytes of data.
64 bytes from blah.blah.com (74.125.141.99): icmp_seq=1 ttl=63 time=109 ms

--- www.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 109.886/109.886/109.886/0.000 ms

Ordem de / etc / hosts

Lembre-se de que a ordem em que os hosts são adicionados ao /etc/hosts pode fazer com que os nomes apareçam como você estava vendo.

Por exemplo, se tivéssemos isso em nosso /etc/hosts :

74.125.141.99  blah blah.blah.com

O ping apareceria como você estava vendo, com um nome curto:

$ ping -c1 www.google.com
PING www.google.com (74.125.141.99) 56(84) bytes of data.
64 bytes from blah (74.125.141.99): icmp_seq=1 ttl=63 time=108 ms

--- www.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 108.065/108.065/108.065/0.000 ms

Referências

por 15.07.2018 / 08:56