명령에 대한 호스트 해상도 설정? [복사]

명령에 대한 호스트 해상도 설정? [복사]

호스트의 확인 주소를 수정하려면 /etc/hosts를 변경할 수 있습니다.
단일 스크립트를 실행할 때 실제로 /etc/hosts를 수정하지 않고도 이 작업을 수행할 수 있기를 바랍니다
.

$HOST=foo.bar:10.0.1.256 ping foo.bar

/etc/hosts의 항목과 동일 10.0.1.256 foo.bar
하며$ ping foo.bar

이것이 가능한가?

답변1

반복됨/etc/hosts를 보완하기 위해 사용자별 호스트 파일을 만들 수 있습니까?, HOSTALIASES의 사용법을 설명합니다.

기본적으로 HOSTALIASES 환경 변수가 자신의 호스트 파일을 가리키도록 설정합니다.

더 많은 정보를 원하시면 방문해주세요호스트 이름(7) 매뉴얼 페이지

답변2

사용자 호스트 파일이 없으면 복잡한 바인딩 설정으로 인해 다른 내부 IP 뒤에서 애플리케이션을 호스팅할 수 있습니다. 하지만... 애플리케이션은 DNS를 건너뛸 수 있어야 합니다.

http/https 호출을 수행하는 애플리케이션에 대해 이 작업을 수행하려면 DNS를 완전히 건너뛸 수 있습니다. http 요청을 할 때 도메인이 헤더에 복사됩니다. 헤더를 재정의하여 이 단계를 건너뛸 수 있습니다.

예를 들어;

wget --header="호스트: www.example.com" "http://127.0.0.1/bob/is/cool"

이렇게 하면 http 요청이 localhost로 보내지지만 http 요청은 127.0.0.1이 아닌 www.example.com으로 보내집니다.

(DNS를 우회하고 올바른 도메인에 대한 유효한 http 호출을 수행합니다).

어떤 이유로 요청의 호스트와 같은 식별자가 없는 백업 TCP 서비스인 경우 미친 바인딩 설정이 작동합니다(애플리케이션의 src IP를 거부하면 다른 DNS 서비스에서 확인됩니다).

또 다른 해결책은 커널 방화벽을 사용하는 것입니다.

애플리케이션을 다른 LAN 또는 루프백 주소로 분할하면 소스 패킷 주소를 기반으로 다른 IP로 DNAT를 수행할 수 있습니다.

관련 정보