이전 포스팅에서 질문드렸던SSH 프로토콜이 대상에 성공적으로 연결하지 못하는 이유는 무엇입니까? 내 원래 명령은
ssh -L 9000:google.com:80 testme@localhost
이 문제를 해결하기 위해 Stephen Kitt는 다음과 같이 썼습니다.
예를 들어 웹 브라우저를 사용하면 터널을 생성할 때 호스트 이름 대신 IP 주소를 지정할 수 있습니다.
ssh -L 9000:216.58.213.142:80 testme@localhost
"터널 생성 시 호스트 이름 대신 IP 주소를 지정"하는 이유가 무엇인지 알고 싶습니다.
google.com이 216.58.213.142로 확인되면 이 두 명령은 동일하지 않습니까?
IP 주소와 가상 호스트 사이에 차이가 있습니까?
감사해요.
답변1
google.com이 216.58.213.142로 확인되면 이 두 명령은 동일하지 않습니까?
예, 하지만 여기서 중요한 점은 google.com에서 Google IP 주소를 확인할 수 없는 상황을 처리하는 것입니다 /etc/hosts
. IP 주소를 지정하면 됩니다(유효한 IP 주소를 얻기 위해 자체 DNS 조회를 수행하여 결정함). Google 지리적으로 적합한 IP 주소의 경우 먼저 확인하거나 /etc/hosts
다른 해결 메커니즘을 사용하지 않고도 터널이 예상대로 설정되었는지 확인할 수 있습니다. SSH는 필요에 따라 전달된 포트에 대한 연결을 구문 분석하고 엽니다. 포트를 호스트 이름으로 전달한 다음 해당 호스트 이름의 주소를 덮어쓰면 SSH는 예상한 주소 대신 재정의된 주소로 연결을 전달하려고 시도합니다.