로컬 DNS 확인자에 항목을 추가하는 방법 [닫기]


19

리눅스에서 몇 가지 테스트를하고 싶습니다. IP가 1.2.3.4 (가정) 인 컴퓨터에 작은 웹 서버를 넣고 싶습니다. 특정 URL에 대해 DNS 쿼리가 이루어지면 kitty.myweb.com이 IP 주소를 반환하고 싶습니다.

시나리오 :

  1. 브라우저 (firefox 또는 기타)를 열면 URL kitty.myweb.com을 입력하면 브라우저가 DNS 쿼리를 수행합니다.
  2. kitty.myweb.com에 대한 DNS 쿼리를 수행하는 프로그램을 작성하고 싶습니다.

각 컴퓨터에는 일부 항목을 캐시하는 로컬 DNS 확인자가 있습니다. URL을 호출하면 먼저 로컬 DNS 확인자를 쿼리하고 해당하는 항목이 없으면 LAN 또는 인터넷의 외부 DNS 확인 자로 쿼리를 보냅니다.

내가하고 싶은 것은 로컬 DNS 확인자에 항목 (kitty.myweb.com : 1.2.3.4)을 추가하여 위의 두 시나리오에서 외부 쿼리를 수행하지 않고 DNS 응답이 1.2.3.4가되도록하는 것입니다.

리눅스 에서이 작업을 수행 할 수 있습니까? 그렇다면 어떻게합니까? 이 작업을 수행하는 C 코드 스 니펫이 있습니까?

답변:


30

/ etc / hosts를 사용하여 항목을 추가 할 수 있습니다. 이것은 실제로 DNS를 사용하지는 않지만 대부분의 응용 프로그램에서 사용하는 Linux의 리졸버 라이브러리에 영향을 미칩니다. 더하다:

1.2.3.4 kitty.myweb.com

다른 옵션은 시스템에 간단한 DNS 서버를 설치하는 것입니다. 내가 자주 사용하는 것을 dnsmasq라고합니다. 일부 배포판에서는 기본적으로 캐싱 리졸버로 설치되며,이 경우 다음을 포함하도록 구성 만 수정하면됩니다.

주소 = / kitty.myweb.com / 1.2.3.4

자체 DNS 서버를 실행중인 경우 Linux 리졸버 라이브러리에서 사용하는 /etc/resolv.conf를 사용해야합니다. 리졸버 라이브러리가 로컬 DNS 서버를 보도록하려면 resolv.conf에 항목이 필요합니다.

네임 서버 127.0.0.1


9

로컬 호스트에 단일 DNS 항목을 추가하는 가장 쉬운 방법은 호스트 파일에 추가하는 것입니다. 해당 파일의 위치는 배포판마다 다를 수 있지만 기존 위치는 /etc/hosts대략 다음과 같습니다.

:: 1 로컬 호스트 localhost.yourdomain.tld
127.0.0.1 로컬 호스트 localhost.yourdomain.tld
1.2.3.4 kitty.myweb.com

이는 자신의 컴퓨터에만 영향을 미치며 확장 성이 떨어집니다. 다시 말해, 간단한 테스트에는 적합하며 많은 컴퓨터에서 호스트 파일을 편집하지 마십시오. 이를 위해 올바른 DNS 항목이 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.