/etc/hosts가 아닌 경우 호스트 이름 별칭이 유지되는 파일은 무엇입니까?

/etc/hosts가 아닌 경우 호스트 이름 별칭이 유지되는 파일은 무엇입니까?

내 서버에 별칭("hostname -a" 명령에서 볼 수 있듯이)을 갖기 위해 /etc/hosts 파일을 편집하여 호스트 이름이 포함된 항목 끝에 별칭을 추가했습니다.

예를 들어, 내 호스트 이름은 host1이고 별칭은 hostalias로 지정하고 싶습니다. /etc/hosts에 다음 항목이 있습니다.

    192.168.0.1 host1 hostalias

이 변경으로 "hostname -a"를 사용하여 호스트 별칭을 볼 수 있습니다.

하지만 한 번만 변경할 수 있습니다! /etc/hosts 파일을 다음과 같이 다시 편집하면:

    192.168.0.1 host1 hostalias2

"hostname -a"의 출력은 여전히 ​​Hostalias입니다.

Hostalias2를 제거하고 서버를 다시 시작한 후에도 여전히 Hostalias가 표시됩니다.

그러나 재부팅 후 처음으로 별칭을 변경하면 적용됩니다.

실제로 두 가지 질문이 있습니다.

  1. /etc/hosts가 아닌 경우 호스트 이름 별칭이 유지됩니다(재부팅 후에도 유지되도록).

  2. 왜 시작할 때마다 한 번만 변경할 수 있나요?

추가 정보: RHEL 6.2 서버입니다.

답변1

Fedora/RHEL/CentOS를 사용하는 경우 호스트 이름은 /etc/sysconfig/network 파일에서 필요한 값을 검색한 후 rc.sysinit 스크립트에 의해 설정됩니다.

부팅당 한 번만 변경할 수 있는 이유는 언제든지 변경할 수 있기 때문입니다. hostname이를 변경하려면 명령에 새 호스트 이름을 제공 해야 합니다 . 파일을 편집하는 것만으로는 그렇게 할 수 없습니다. 그러나 이 방법으로 변경하면 변경하기 전에 실행 중이던 프로그램이 여전히 이전 값을 캐시할 수 있다는 점을 명심하세요.

답변2

@StephaneChazelas가 여기 있습니다이 댓글.

아마도 이름 서비스 캐싱 데몬이 있을 것입니다. sudo nscd -i 포트 다음에 이것을 시도하십시오(호스트 캐시를 무효화하려면).

질문에 대한 답변에 대해서는 언급할 수 없으므로 직접 답변해 드리겠습니다.

관련 정보