DNS에서 우분투 서버의 IP 주소를 변경했습니다.
앞으로
10.x.x.111
뒤쪽에
10.x.x.222
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.x.x.111] port 22. <= 111 is the incorrect *old* address
이전 IP가 존재하지 않거나 존재하지 않는 것을 확인했습니다 /etc/hosts
~/.ssh/known_hosts
.~/.ssh/config
SSH가 잘못된 IP 주소를 찾는 이유는 무엇입니까?
고쳐 쓰다
밤새 기다린 후, 오늘 아침에 SSH가 올바른 IP 주소에 연결된 것 같습니다.
답변이 없으므로 질문을 설명하겠습니다. DNS 이름을 확인하는 방식의 차이점은 무엇입니까 ssh
?host
업데이트 2
이것을 다시 재현해봤습니다. host
올바른 IP를 표시 ping
하고 ssh
이전 IP를 표시합니다.
이것은 ping의 strace 출력입니다. http://pastebin.com/ifnrqDP6
답변1
그 이유는 OSX에는 플러시해야 하는 캐시가 여러 개 있기 때문입니다. 내 워크스테이션은 요세미티를 실행하는 Mac이므로 다음 명령을 실행했습니다.
sudo discoveryutil mdnsflushcache
https://support.apple.com/en-us/HT202516
udns 캐시도 새로 고쳐야 하는 것으로 나타났습니다.
sudo discoveryutil udnsflushcaches