Zmieniłem adres IP serwera Ubuntu w DNS
przed
10.x.x.111
po
10.x.x.222
Wyczyściłem pamięć podręczną dns, a jednak kiedy próbuję ssh do komputera, ssh nadal próbuje połączyć się ze starym adresem IP.
host foo.example.com
10.10.10.222 <= 222 is the correct *new* ip address
ssh -vv -F /dev/null -o UserKnownHostsFile=/dev/null foo.example.com
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /dev/null
debug2: ssh_connect: needpriv 0
debug1: Connecting to foo.example.com [10.x.x.111] port 22. <= 111 is the incorrect *old* address
Sprawdziłem, że stary adres IP nie jest obecny w /etc/hosts
~/.ssh/known_hosts
ani~/.ssh/config
Dlaczego ssh znajduje niewłaściwy adres IP?
Aktualizacja
Po odczekaniu przez noc wydaje się, że dziś rano ssh łączy się teraz z poprawnym adresem IP.
Ponieważ nie ma odpowiedzi, wyjaśnię to pytanie. Czym ssh
różni host
się sposób, w jaki rozwiązują nazwy DNS?
Aktualizacja 2
Powtórzyłem to ponownie. host
pokazuje właściwy adres ip ping
i ssh
pokazuje stary adres ip.
Oto dane wyjściowe polecenia ping http://pastebin.com/ifnrqDP6
foo.example.com
czy to rozwiązuje prawidłowy adres, czy nie?Odpowiedzi:
Powodem jest to, że w OSX istnieje wiele pamięci podręcznych, które należy opróżnić. Ponieważ moja stacja robocza to komputer Mac z systemem Yosemite, uruchomiłem następujące
https://support.apple.com/en-us/HT202516
Okazuje się, że musiałem również opróżnić pamięć podręczną udns
źródło
ssh -v my.host.name
pokazywał, że ssh i nslookup nie zgadzają się co do tego, jaki był adres IP dla my.host.name. Myślałem, że to coś, co zrobiłem z moją nazwą hosta; okazuje się, że to lokalny problem Yosemite to naprawił.