호스트 이름을 확인할 수 없습니다

호스트 이름을 확인할 수 없습니다

그래서 나는 이것을 시도했습니다 :

ssh $(hostname)

그것은 나에게 말한다 :

ssh: Could not resolve hostname woofy: Name or service not known

호스트 이름이 "woofy"라는 것을 알고 있는데 왜 자체적으로 연결할 수 없습니까?

답변1

그래서 우리는 hostname보상을 알고 있습니다 woofy. 그러나 이름은 IP 주소로 확인될 수 없습니다.

즉, woofyin 에 대한 항목을 추가 해야 합니다 /etc/hosts. 127.0.0.1로 확인하세요. 또는 시스템이 IPv6::1을 지원하는 경우.

/etc/hosts문제가 발생할 경우를 대비해 이전 버전의 백업을 보관하세요 (저는 etckeeper이를 위해 편의 패키지를 사용하지만 이전 방식을 선호하는 경우 수동 백업이나 RCS도 사용할 수 있습니다).

긴 대답은 호스트 이름이 IP 주소로 확인되는 방법은 Unix 변형마다 약간씩 다른 구성 파일 세트에 의해 제어된다는 것입니다. /etc/hosts호스트 파일(거의 모든 Unix 시스템에서 작동) 또는 DNS(인터넷에 직접 IP로 연결할 수 있는 시스템은 항상 이 작업을 수행함)를 통해 호스트 이름을 확인하도록 Unix 시스템을 구성할 수 있습니다 . 다른 대안도 있지만 대부분 덜 사용됩니다(LDAP 및 NIS/NIS+ 포함). 에 관한 Wikipedia 기사를 참조하세요.이름 서비스 스위치이것에 대한 더 많은 배경.

편집하다:/etc/hosts그래도 DNS 조회가 발생하면 이름 서비스 스위치 구성이 이전에 DNS를 참조하여 변경 사항이 적용되지 않는 것이 문제일 수 있습니다 /etc/hosts. 살펴보세요 /etc/nsswitch.conf(NSS 구성 방법은 운영 체제에 따라 다릅니다).

답변2

Unix 시스템에는 네트워크 하위 시스템과 독립적인 호스트 이름 개념이 있습니다. 이름은 hostname명령이 표시하는 내용과 로그에 나타나는 내용입니다. SSH 연결을 설정하면도메인 명 시스템문맥에서 이름이 무엇을 의미하는지 알아보세요.TCP/IPSSH가 작동하는 프로토콜 제품군입니다.

귀하의 정신 건강을 위해 호스트 이름이 근처의 DNS 서버가 말하는 것과 시스템이 생각하는 이름(있는 경우)과 일치하는지 확인하는 것이 좋습니다. 실제로 DNS 이름은 컴퓨터가 아니라 네트워크 인터페이스와 연결되므로 DNS 이름은 네트워크 인터페이스 중 하나와 연결됩니다. 실제 네트워크 연결이 없는 컴퓨터에서는 호스트 이름이 다음과 동일해야 합니다.루프백상호 작용.

실제로 호스트 이름은 /etc/hostname대부분의 컴퓨터에서 파일에 저장됩니다. 다음 명령을 사용하여 런타임에 이를 변경할 수 있습니다 hostname. 이는 시작 프로세스 초기에 수행됩니다. DNS 이름의 로컬 개념은 /etc/hosts루프백 인터페이스( ) 또는 컴퓨터의 네트워크 인터페이스 중 하나에 해당하는 행의 에 저장됩니다.127.0.0.1

관련 정보