IP 주소가 포함된 Hostaliases 파일

IP 주소가 포함된 Hostaliases 파일

환경 변수를 사용하면 HOSTALIASES사용자가 이를 수행할 필요 없이 자신의 호스트 별칭을 설정할 수 있습니다 sudoedit /etc/hosts(자세한 내용은 예를 들어http://blog.tremily.us/posts/HOSTALIASES/)

그러나 /etc/hostsIP 주소를 이름으로 별칭을 지정할 수 있고 이름을 이름으로 별칭을 지정할 수 있지만 HOSTALIASES이름 별칭만 작동하는 것 같습니다.

나는 시도했다:

cat > .hosts
work 10.10.0.1
g www.google.com
^D
export HOSTALIASES=$PWD/.hosts

지금

curl g #works 
curl 10.10.0.1 #works
curl work #doesn't work

curl work쓰기 권한이 없는 파일( )을 편집하지 않고도 작업을 완료 할 수 있나요 /etc/hosts?

답변1

HOSTALIASES이 기능은 glibc의 파서 함수에 의해 제공됩니다 gethostbyname(). 이 함수에서는 별칭 조회 결과가 hosts:에 지정된 후속 libnss 모듈 호출 에 변경 없이 전달되므로 /etc/nsswitch.conf이를 처리할 수 있는 모듈이 없으면 gethostbyname()실패합니다 .

10.10.0.1대부분의 프로그램에서는 이전에 처리된 숫자 주소 기호(예: 및 )가 호출됩니다 .2a00:1450:400c:c05::67inet_aton() inet_pton() getaddrinfo()gethostbyname()

일부 DNS 서버(dnsmasq 포함)는 숫자 주소 문자열이 적용된 쿼리에 유효한 주소 레코드를 반환합니다 inet_aton(). 예를 들어 10.10.0.1FQDN이 포함된 쿼리에 대해 A 레코드를 반환합니다 10.10.0.1.. 그러나 BIND를 포함한 다른 서버는 그러한 쿼리에 대해 NXDOMAIN만 반환합니다. 따라서 work 10.10.0.1대체품 HOSTALIASES을 정의하기 위해 이에 의존할 수 없습니다 /etc/hosts.

한 가지 가능한 해결책은 공용 DNS 서비스를 활용하는 것입니다.xip.io모든 IPv4 주소의 확인 가능한 FQDN을 가져옵니다. 예를 들어 work다음과 같이 정의 할 수 있습니다 10.10.0.1.

work 10.10.0.1.xip.io

관련 정보