루트 액세스 없이 /etc/hosts에 쓰는 것과 유사한 오버레이 DNS를 만들 수 있습니다.

루트 액세스 없이 /etc/hosts에 쓰는 것과 유사한 오버레이 DNS를 만들 수 있습니다.

내 브라우저가 사용할 DNS 레코드를 설정하고 싶지만 루트 액세스 권한이 없으므로 수정할 수 없습니다 /etc/hosts. DNS가 아직 설정되지 않은 가상 호스트를 테스트하기 위해 Apache를 사용하려면 이 작업을 수행해야 합니다. 저는 Firefox와 Chrome을 사용할 수 있으므로 이를 단순화할 수 있는 플러그인이나 도움이 될 다른 옵션이 있다면;

고쳐 쓰다:DNS를 재정의하는 대신 HTTP 헤더를 수정하는 방법이 있을 수 있습니다. 올바른 헤더가 Apache로 전송되면 올바른 콘텐츠가 반환되어야 합니다.

답변1

테스트를 위해 수정된 DNS 확인을 사용하여 프로그램을 실행하는 방법을 찾고 있습니다. 나에게 해결책은 HOSTALIASES환경 변수를 사용하는 것이 었습니다.

$ echo "foo www.google.com" >> ~/.hosts
$ HOSTALIASES=~/.hosts wget foo

바라보다 hostname(7).

(참고: 예제에서 HOSTALIASES환경 변수는 wget프로세스에만 영향을 미칩니다. 물론 export HOSTALIASES현재 셸의 모든 하위 프로세스에 영향을 미치도록 만들 수도 있습니다.)

답변2

libc 함수 주위에 래퍼를 작성하여 호스트 이름을 확인하고 /etc/hosts가 아닌 다른 파일에서 찾을 수 있습니다. 그런 다음 호스트 파일을 사용하려는 응용 프로그램을 실행하십시오.

LD_PRELOAD=wrapper.so firefox

답변3

내 생각에 가장 좋은 방법은 SOCKS5 프록시를 설정하고 Firefox에 SOCKS5 프록시(network.proxy.socks_remote_dns)를 통해 DNS 요청을 보내도록 지시하는 것입니다. openssh(-D 옵션)를 사용하여 매우 쉽게 ocks5 프록시를 설정하고 사용자 정의 /etc/hosts 또는 이와 유사한 것을 사용하여 원격 호스트를 실행할 수 있습니다.DNS 마스크더 복잡한 DNS 설정의 경우. 그러나 실제로 이는 시스템 전체를 변경할 수 있는 시스템에 DNS 설정 구성을 푸시합니다.

답변4

가상 호스팅을 테스트하려면 Firefox에서 Apache 서버를 프록시로 설정할 수 있습니다. 입력한 이름은 Apache로 전달됩니다. 이렇게 하면 다른 웹사이트 탐색이 중단되므로 완료되면 프록시를 재설정하세요.

관련 정보