Я изменил IP-адрес сервера ubuntu в DNS
до
10.xx111
после
10.xx222
Я очистил кеш dns, и все же, когда я пытаюсь и ssh в машину, ssh все еще пытается подключиться к старому 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.xx111] port 22. <= 111 is the incorrect *old* address
Я проверял, что старый IP-адрес отсутствует в /etc/hosts
~/.ssh/known_hosts
или ~/.ssh/config
Почему ssh находит неправильный адрес ip?
Обновить
После ожидания в одночасье, похоже, что сегодня утром ssh подключается к правильному ip-адресу.
Поскольку ответов нет, я расскажу об этом. Как ssh
отличается от host
тем, как они разрешают имена DNS?
Update2
Я воспроизвел это снова. host
показывает правильный ip, ping
и ssh
показывает старый ip.
Вот вывод strace ping http://pastebin.com/ifnrqDP6
Причина в том, что в OSX есть несколько кешей, которые необходимо очистить. Поскольку моя рабочая станция является Mac, работает yosemite, я запускал следующие
sudo discoveryutil mdnsflushcache
https://support.apple.com/en-us/HT202516
Оказывается, мне также нужно было очистить кеш udns
sudo discoveryutil udnsflushcaches