내 외부 IP 주소가 자주 변경되기 때문에 내 도메인은 LAN의 외부 IP를 가리키는 동적 DNS를 사용하도록 설정되어 있습니다. 그러나 나는 이 호스트를 사용할 수 있도록 별칭을 만들고 싶습니다 home
. 그래서 다음을 내 호스트에 추가합니다 /etc/hosts
.
example.com home
그러나 도메인 이름이 마음에 들지 않는 것 같습니다. IP로 변경하면:
0.0.0.0 home
그러면 작동하겠지만, 물론 이는 동적 DNS의 목적을 무너뜨리는 것입니다!
가능합니까?
답변1
이 파일에는 /etc/hosts
IP 주소와 호스트 이름만 포함됩니다. 이 방법을 통해 원하는 방식으로 문자열 "home"의 별칭을 지정할 수 없습니다.
자체 DNS 서버를 실행하는 경우 CNAME
레코드 를 추가하여 home.example.com
별칭을 만들 수 있지만 domain.example
그렇지 않으면 운이 좋지 않습니다.
가장 좋은 방법은 동일한 DNS 클라이언트를 사용하여 정규화된 이름을 업데이트하는 것입니다.
답변2
/etc/hosts
이전에 언급한 바와 같이, 그 목적은 이름-IP 조회를 위한 alias( ) 기능을 제공하는 것이 아닙니다 . CNAME
적절한 DNS 서버를 설정하고 구성할 때 CNAME
항상 정확한 home
IP를 확인하는 방법이 분명히 있지만 example.com
단순한 별칭보다 조금 더 복잡합니다.
변경 자체는 스크립트의 한 줄로 쉽게 자동화할 수 있습니다.
sudo sed -i "s/.* home/$(dig +short domain.com|tail -1) home/" /etc/hosts
IP 변경을 감지하는 방법이 이미 있는 경우 이를 프로세스에 쉽게 추가할 수 있습니다. 그렇지 않으면 x
간단한 cron 작업을 사용하여 주기당 한 번만 적용 범위를 예약하는 무차별 접근 방식을 설정할 수 있습니다.
인용하다:
답변3
설명하는 상황을 처리하는 가장 쉬운 방법은 DNS 검색 도메인을 domain.com
.
home.domain.com
또한 을 가리키는 DNS 레코드를 만듭니다 domain.com
.
홈 라우터에서는 DHCP 검색 도메인을 설정할 수 있어야 합니다. 대부분의 모바일 장치에서도 이를 허용합니다.
그러면 직접 다음을 수행할 수 있습니다.
ping home
ping 을 해야 합니다 home.domain.com
.
검색 도메인을 설정하는 정확한 방법은 기기마다 다르지만 거의 모든 기기에서 검색 도메인을 설정할 수 있습니다.
그러면 자신을 다음으로 제한할 필요가 없습니다 home
. ping을 보내 printer
거나 정규화된 도메인 이름에 대해 생각조차 하지 않을 phone
수도 있습니다 ...fridge
답변4
DYNDNS나 이와 유사한 것을 등록해야 할 것 같습니다.
정말로 /etc/hosts를 사용하려면 IP를 모니터링해야 합니다. 변경이 발생하면:
- /etc/hosts의 항목 변경
- 호스트 캐시 다시 로드
- 지속적인 모니터링
고쳐 쓰다
이를 사용하는 경우 dhcpcd
스크립트의 "-c" 옵션을 사용하여 /etc/hosts-entry를 변경한 다음 호스트 캐시를 다시 로드할 수 있습니다.
이는 dhcp 클라이언트의 기능에 따라 다릅니다.