와일드 카드 항목을 / etc / hosts에 넣는 방법은 무엇입니까?


82

최근에 테스트 도메인의 모든 하위 도메인 (예 : example.com)을 localhost로 지정하고 싶었습니다. * .example.com의 모든 요청을 127.0.0.1로 해결하도록 지시하는 방법이 있습니까?


답변:


99

/etc/hosts파일이 와일드 카드 항목을 지원하지 않는 경우가 발생 합니다.

dnsmasq와 같은 다른 서비스를 사용해야합니다. dnsmasq에서 활성화하려면 dnsmasq.conf다음 행을 편집 하고 추가하십시오.

address=/example.com/127.0.0.1

4
와일드 카드 항목
-address

2
@Vivek 그것의 필요는 없습니다
Rahil 지르을

4
우분투 dnsmasq설정은 이것을 참조하십시오 .
lemonsqueeze

5
macosx 설정의 경우 curiosity.com/2013/dnsmasq-dev-osx를 전달 하면 매우 유용합니다.
aamir

4
rahilwazir, 실제로 모든 하위 도메인을 원하지 않는 경우입니다. #은 와일드 카드로도 작동합니다. 개인적으로 dev123.example.com 등이 작동하도록`address = / dev # .example.com / 127.0.0.1을 사용하고 있습니다.
Ray Foss 2015 년

6

다음은 원래 목표를 달성하려는 사용자를위한 구성입니다 (모두 동일한 코드베이스를 가리키는 와일드 카드-아무것도 설치하지 않음, 개발 환경, 즉 XAMPP).

호스트 파일 (항목 추가)

파일 : / etc / hosts (비 Windows)

127.0.0.1   example.local

httpd.conf 구성 (가상 호스트 활성화)

파일 : /XAMPP/etc/httpd.conf

# Virtual hosts
Include etc/extra/httpd-vhosts.conf

httpd-vhosts.conf 구성

파일 : XAMPP / etc / extra / httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin admin@example.local
    DocumentRoot "/path_to_XAMPP/htdocs"
    ServerName example.local
    ServerAlias *.example.local
#    SetEnv APP_ENVIRONMENT development
#    ErrorLog "logs/example.local-error_log"
#    CustomLog "logs/example.local-access_log" common
</VirtualHost>

아파치를 다시 시작

pac 파일 생성 :

원하는 위치에 whatever.pac으로 저장 한 다음 브라우저의 네트워크> 프록시> auto_configuration 설정에서 파일을로드합니다 (변경하는 경우 다시로드).

function FindProxyForURL(url, host) {
  if (shExpMatch(host, "*example.local")) {
    return "PROXY example.local";
  }
  return "DIRECT";
}

Windows의 호스트 파일에서는 작동하지 않습니다. www.example.com 만 허용됩니다.
Andre Figueiredo

1
이것은 firefox에서 pac 파일을 사용하는 Windows에서 작동합니다. 여러 Windows 시스템에서 이것을 테스트했습니다. 호스트 파일에는 하나의 항목 만 필요하고 pac 파일은 하위 도메인을 처리합니다.
Daniel Jordi

1
내가 이해하는 원래 질문은 아파치에 관한 것이 아니라 네트워킹 수준이므로 귀하의 응답이 요점을 놓친 것 같습니다 : /
enTropy

인터넷에서 PAC 파일을 사용하기위한 참조 탐구 : campus.barracuda.com/product/websecurityservice/article/WSS/...을
아랍 sheybani 사이드

1
pac 파일을 사용하여 호스트 (예 : localhost)에 대한 요청을 프록시 할 때 Apache와 같은 웹 서버는 경로 구성 요소 대신 REQUEST_URI 변수의 전체 URL (프로토콜 및 호스트 이름 포함)을 사용합니다.
JSchirrmacher

5

dnsmasq 사용

데비안 기반 dist (ubuntu, mint ..)를 사용하는 것처럼 가장하여 설치되었는지 확인하십시오.

(sudo) systemctl status dnsmasq

비활성화 된 경우 다음으로 시작하십시오.

(sudo) systemctl start dnsmasq

설치해야하는 경우 다음과 같이 작성하십시오.

(sudo) apt-get install dnsmasq

다음 /etc/dnsmasq.conf과 같이 편집을 해결할 도메인을 정의하려면

address=/example.com/127.0.0.1

* .example.com 해결

! 변경 사항을 적용하려면 dnsmasq를 다시로드해야합니다!

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