도메인 이름은 IP 주소를 추상화한 것입니다. 해당 IP가 어떤 컴퓨터에 있든 도메인 이름은 해당 컴퓨터를 가리켜야 합니다. 그렇다면 도메인 이름을 컴퓨터와 연결하기 위해 /etc/{hosts,hostname} 및/또는 systemd의 hostnamectl을 사용하는 이유는 무엇입니까? 나는 아무것도 모르지만 이것은 나에게 잘못된 것 같습니다.
동적 DNS 도메인 이름을 사용하여 집에서 처음으로 공개적으로 액세스할 수 있는 서버를 설정 중이어서 이 호스트/호스트 이름 문제가 발생했습니다. 나는 유일한 사람이 아니예요물어보세요, 그러나 그 사람은 대답을 얻지 못했습니다.
답변1
/etc/hostname
(참조 ) 에서 man 5 hostname
서버의 로컬 호스트 이름을 설정할 수 있고 설정해야 합니다. 이 이름은 이 서버에서 실행되는 소프트웨어에서 사용될 수 있습니다. 이것은 단지 문자열이며 서버 외부에는 표시되지 않습니다.
대신 이 파일은 /etc/hosts
컴퓨터 이름을 IP 주소로 확인하는 데 사용됩니다. 가난한 사람의 DNS 서버라고 생각하시면 됩니다. 예전에는 도메인 이름 시스템이 개발되기 전에는 통합 네트워크를 이름으로 매핑하기 위해 실제로 대용량 호스트 파일이 인터넷의 컴퓨터 간에 전송되었습니다. 실행 중인 DNS 서버가 있고 로컬 네트워크에 서버가 두 개 이하인 경우 일반적으로 여기에 항목을 추가할 필요가 없습니다.
네임서버에 의존하지 않으려면 에 자신의 서버와 IP 주소를 입력하면 됩니다 /etc/hosts
. 그러나 서버 수가 증가하고 주소 범위가 변경되면 이 파일을 유지 관리하는 것이 지루해진다는 점에 유의해야 합니다.
답변2
DNS 이름은 IP 주소와 일대일 관계가 아닙니다. 예를 들어 도메인 이름은 이메일에만 사용될 수 있으므로 MX 레코드만 있고 IP 주소는 없습니다. 또는 여러 이름이 단일 IP 주소를 가리킬 수 있는데, 이는 별도의 도메인 이름으로 여러 사이트를 제공하는 웹 서버에서 흔히 발생합니다. 또한 단일 도메인 이름이 여러 IP 주소를 가리킬 수 있으며 이는 로드 균형 조정에 유용할 수 있습니다.
이러한 경우 대부분 DNS의 공개 "서비스 이름"과 시스템을 식별하고 로그 및 명령 프롬프트에 표시되는 내부 이름을 구별하는 것이 유용할 수 있습니다.
/etc/hosts
정말 중요 합니까 /etc/hostname
? 전자는 DNS를 대체하는 반면 후자는 시스템의 "내부" 호스트 이름을 저장하는 데 사용됩니다.