programing

윈도우즈 호스트 파일의 와일드카드

easyjava 2023. 5. 9. 23:12
반응형

윈도우즈 호스트 파일의 와일드카드

하여 요청 이 있으면 언제든지 요청할 수 있도록 .*.local으로 .localhost입니다.site1.local,site2.local등, 그리고 그들 모두가 결심하도록 하라.localhost그에 따라 Apache는 다른 사이트에 서비스를 제공합니다.

Windows XP에 있습니다.

추가해봤습니다.

127.0.0.1       *.local

나에게c:\windows\system32\drivers\etc\hosts된 경우: 파일, 파일:

127.0.0.1       .local

둘 다 효과가 없는 것 같습니다.

포트 번호에 따라 설정할 수 있다는 것은 알지만, 어느 포트인지 기억하기가 어렵기 때문에 번거롭습니다.

로컬 DNS 서버를 설치하거나 어려운 것을 설정하고 싶지 않습니다. 제안할 사항이 있습니까?

아크릴 DNS 프록시(무료, 오픈 소스)가 이 작업을 수행합니다.사용자 컴퓨터에 자체 호스트 파일이 있는 프록시 DNS 서버를 만듭니다.호스트 파일에서 와일드카드를 사용할 수 있습니다.

공식 웹 사이트에서 다운로드

http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=Home

아크릴 DNS 프록시 구성

아크릴 DNS 프록시를 구성하려면 위 링크에서 설치한 다음 다음으로 이동합니다.

  1. 시작
  2. 프로그램
  3. 아크릴 DNS 프록시
  4. 구성
  5. 사용자 지정 호스트 파일 편집(AcrylicHosts.txt)

파일 끝에 다음 행을 추가합니다.

127.0.0.1   *.localhost
127.0.0.1   *.local
127.0.0.1   *.lc

아크릴 DNS 프록시 서비스를 다시 시작합니다.

  1. 시작
  2. 프로그램
  3. 애크릴릭 DNS 프록시
  4. 구성
  5. 아크릴 서비스 다시 시작

또한 네트워크 인터페이스 설정에서 DNS 설정을 조정해야 합니다.

  1. 시작
  2. 제어판
  3. 네트워크 및 인터넷
  4. 네트워크 연결
  5. 로컬 영역 연결 속성
  6. TCP/IPv4

다음 DNS 서버 주소 사용을 설정합니다.

Preferred DNS Server: 127.0.0.1

이한다면 ( 만약당이이대사제과레아미대결의면더답다합을이한용스나답신사▁if▁()as면using▁this'결s다▁combine용▁answer)VirtualDocumentRoot그런 다음 디렉터리를 만들기만 하면 도메인/가상 호스트를 자동으로 설정할 수 있습니다.

질문에 대답하려면 Windows(윈도우)에서 호스트 파일에 와일드카드를 사용할 수 없습니다.

그러나 새 사이트가 작동하도록 호스트 파일만 변경하려는 경우...Apache를 다음과 같이 구성할 수 있으며 구성을 계속 편집할 필요가 없습니다.

http://postpostmodern.com/instructional/a-smarter-mamp/

기본적으로 내 설정에 기반한 간단한 요약으로 apache.conf 파일에 다음을 추가합니다.

 LoadModule vhost_alias_module modules/mod_vhost_alias.so

 NameVirtualHost *:80

  <Directory "/xampp/sites">
      Options Indexes FollowSymLinks Includes ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all 
  </Directory>

  <VirtualHost *:80>
      VirtualDocumentRoot c:/xampp/sites/%-1/%-2+/
  </VirtualHost>

이를 통해 다음과 같은 항목을 추가할 수 있습니다.

127.0.0.1       test.dev

그런 다음 디렉토리 c:\xampp\dev\test를 만들고 거기에 필요한 파일을 넣으면 작동합니다.

은 다옵른션사것다니입는용하를 사용하는 것입니다.<Directory>apache.conf의 태그와 http://localhost/project/페이지를 참조합니다.

저는 그것이 가능하다고 생각하지 않습니다.

어쨌든 새 사이트와 위치를 추가할 때마다 Apache 가상 루트 항목을 수정해야 하므로 새 이름을 윈도우즈 vhost 파일에 동기화하는 것은 큰 작업이 아닙니다.

업데이트: 다음 답변과 이 답변에 대한 의견을 확인하십시오.이 대답은 몇 년 전의 것으로 더 이상 정답이 아닙니다.

여기에 이미 있는 훌륭한 제안들을 덧붙이자면, XIP입니다.IO는 공개적으로 사용할 수 있는 환상적인 와일드카드 DNS 서버입니다.

      myproject.127.0.0.1.xip.io  -- resolves to -->   127.0.0.1
  other.project.127.0.0.1.xip.io  -- resolves to -->   127.0.0.1
   other.machine.10.0.0.1.xip.io  -- resolves to -->   10.0.0.1

루프백이 아닌 주소를 지정하는 기능은 호스트 파일에 액세스할 수 없는 iOS 장치의 테스트 사이트에 매우 적합합니다.

이 구성을 다른 답변에서 언급한 일부 Apache 구성과 결합하면 설정이 0인 가상 호스트를 추가할 수 있습니다.

Windows 명령 프롬프트에서 "ipconfig /flushdns"를 실행할 때 컴퓨터를 다시 시작하는 대신 호스트 파일을 편집하는 것이 더 쉽습니다.

Windows 호스트 파일 사용에 대한 게시물에서 "와일드카드 사용 금지"라는 내용을 발견했습니다.

이전에는 호스트 파일에 추가 항목을 추가했습니다. (앞에서 말했듯이) 이미 Apache 구성 파일을 편집하는 경우 추가 작업이 많지 않기 때문입니다.

네트워크 관리자에게 도메인을 설정하도록 설득할 수 있습니다(예: 'evil puppetmaster').모든 항목(*.vmdkpuppetmaster)이 되도록 와일드카드를 지정합니다.hell')은 IP로 해결됩니다.

하여 이 . : " "DNS 추가"는 DNS 서버에서 사용할 수 있습니다.A은▁something▁like 같은 것을 합니다.*.local -> 127.0.0.1

에 를 대체하는 것이 ..local 도메인 회사내도예인메부의예(인:▁(메도▁your▁with▁companye)으로..int 같은 합니다..localhost.int목적을 분명히 하기 위해서입니다.

그렇게*.localhost.int으로 할 것입니다.127.0.0.1네트워크의 모든 사용자를 위해, 그리고 엔드포인트가 하위 도메인을 중단하는 경우 모든 개발자에 대한 구성 파일 설정은 "그냥 작동"합니다. site1.localhost.int,site2.localhost.int이것은 우리가 도입한 계획과 거의 같습니다.

dnsmasq도 좋아 보이지만, 저는 아직 시도해 본 적이 없습니다: http://ihaveabackup.net/2012/06/28/using-wildcards-in-the-hosts-file/

저는 파이썬으로 간단한 dns 프록시를 작성했습니다./etc/hosts의 와일드카드 항목을 읽습니다.다음을 참조하십시오. http://code.google.com/p/marlon-tools/source/browse/tools/dnsproxy/dnsproxy.py

Linux 및 Mac OS X에서 테스트를 해봤지만 Windows에서는 아직 테스트하지 않았습니다.

와일드카드 및 정규식을 지원하는 방법을 제공하는 AngryHosts를 사용해 볼 수 있습니다.실제로는 호스트 파일 향상 및 관리 소프트웨어입니다.
많은 기능은 http://angryhosts.com/features/ 에서 확인할 수 있습니다.

저는 그것을 하기 위해 DNSChef를 사용하고 있습니다.

https://thesprawl.org/projects/dnschef/

당신은 앱을 다운로드해야 합니다, 리눅스나 맥에서는 그것을 실행하기 위해 파이썬이 필요합니다.Windows에는 고유한 exe가 있습니다.

예를 들어, DNS 항목으로 ini 파일을 생성해야 합니다.

[A]
*.google.com=192.0.2.1
*.local=127.0.0.1
*.devServer1.com=192.0.2.3

그런 다음 관리자 권한으로 DNS 응용 프로그램을 시작해야 합니다.

sudo python dnschef.py --file myfile.ini -q

또는 창에서.

runas dnschef.exe --file myfile.ini -q

마지막으로 로컬 호스트 환경(네트워크, 인터페이스, DNS 또는 이와 유사하거나 /etc/resolv.conf Linux)에서 유일한 DNS로 설정해야 합니다.

바로 그겁니다.

호스트를 대신하기 위해 이 간단한 도구를 만들었습니다.정규식이 지원됩니다.https://github.com/stackia/DNSAgent

샘플 구성:

[
    {
        "Pattern": "^.*$",
        "NameServer": "8.8.8.8"
    },
    {
        "Pattern": "^(.*\\.googlevideo\\.com)|((.*\\.)?(youtube|ytimg)\\.com)$",
        "Address": "203.66.168.119"
    },
    {
        "Pattern": "^.*\\.cn$",
        "NameServer": "114.114.114.114"
    },
    {
        "Pattern": "baidu.com$",
        "Address": "127.0.0.1"
    }
]

@petah와 Acryptic DNS Proxy가 가장 좋은 답변입니다. 마지막에 그는 Apache를 사용하여 멀티 사이트를 수행할 수 있는 기능을 언급했습니다. @jeremyasnyder는 조금 더 아래에 설명합니다.

그러나 우리의 경우 멀티 테넌트 호스팅 시스템을 테스트하고 있으므로 테스트하려는 대부분의 도메인이 동일한 도메인으로 이동합니다.virtualhost다른 몇 명은 다른 곳으로 향하고 있습니다.

합니다.ServerAlias지시, 그런 식으로...

ServerAlias *.foo.local

다음은 목표를 달성하려는 사람들을 위한 총 구성입니다(개발 환경의 와일드카드, XAMPP -- 이 예에서는 모든 사이트가 동일한 코드베이스를 가리킨다고 가정합니다.

hosts 파일(항목 추가)

파일: %SystemRoot%\system32\drivers\etc\hosts

127.0.0.1   example.local

httpd.conf 구성(vhosts 사용)

파일: \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>

Apache 다시 시작

pac 파일 생성:

원하는 곳에 아무 곳이나 저장한 다음 브라우저의 네트워크 > 네트워크 > 자동 구성 설정에 파일을 로드합니다(이 설정을 변경할 경우 표시됨).

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

echoipdns를 사용할 수 있습니다(https://github.com/zapty/echoipdns) .

echoipdns local이 있는 모든 .1..됩니다.다른 접미사를 사용할 수도 있습니다. 원하는 이름으로 local을 바꾸기만 하면 됩니다.

Echoipdns는 훨씬 더 강력합니다. 네트워크의 다른 컴퓨터에서 URL을 사용하려면 구성을 0으로 설정하여 사용할 수 있습니다.

예를 들어.시스템 IP 주소가 192.168.1.100이면 도메인 이름 xyz.192-168-1-100.local을 사용할 수 있으며, 이 도메인 이름은 항상 192.168.1.100으로 확인됩니다.이 마법은 도메인 이름의 두 번째 부분에 있는 IP 주소를 확인하고 DNS 쿼리에서 동일한 IP 주소를 반환함으로써 echoipdns에 의해 수행됩니다.원격 시스템에 액세스하려는 시스템에서 echoipdns를 실행해야 합니다.

echoipdns는 독립 실행형 DNS 프록시로도 설정할 수 있으므로 이 DNS를 가리키기만 하면 매번 특수 명령을 실행하지 않고도 위의 모든 이점을 사용할 수 있으며 모바일 장치에서도 사용할 수 있습니다.

따라서 기본적으로 로컬 및 팀 환경에서 와일드카드 도메인 기반 DNS 개발을 간소화합니다.

echoipdns는 Mac, Linux 및 Windows에서 작동합니다.

참고: 저는 echoipdns의 저자입니다.

서면으로 금지 사항을 찾을 수는 없지만 관례상 Windows hosts 파일은 UNIX hosts 파일을 바짝 따르고 와일드카드 호스트 이름 참조를 해당 파일에 넣을 수 없습니다.

만약 당신이 man 페이지를 읽는다면, 그것은 다음과 같습니다.

DESCRIPTION
     The hosts file contains information regarding the known hosts on the net-
     work.  For each host a single line should be present with the following
     information:

           Internet address
           Official host name
           Aliases

비록 그것이 말하기는 하지만,

     Host names may contain any printable character other than a field delim-
     iter, newline, or comment character.

그것은 실제적인 수준에서 사실이 아닙니다.

기본적으로 /etc/hosts 파일을 보는 코드는 와일드카드 항목을 지원하지 않습니다.

해결 방법은 모든 항목을 미리 작성하는 것입니다. 스크립트를 사용하여 한 번에 200개의 항목을 넣을 수 있습니다.

이러한 와일드카드를 추가할 수는 없지만 적어도 테스트를 위해 필요한 사이트의 전체 목록을 호스트 파일에 추가할 수 있습니다.

127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
...

아크릴 DNS 프록시를 사용한 nginx 구성 자동 하위 도메인에 대한 구성

nginx 사이트 폴더의 auto.conf 파일

server {
    listen 80;
    server_name ~^(?<branch>.*)\.example\.com;
    root /var/www/html/$branch/public;  

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_log  /var/log/nginx/$branch.error.log error;

    sendfile off;

    client_max_body_size 100m;

    location ~ \.php$ {
       try_files $uri /index.php =404;
       fastcgi_pass php-fpm:9000;
       fastcgi_index index.php;
       fastcgi_buffers 16 16k;
       fastcgi_buffer_size 32k;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

아크릴 호스트 파일에 추가127.0.0.1 example.com *.example.com아크릴 서비스를 다시 시작합니다.$subdomain 이름 - 하위 도메인 이름입니다.

root /var/www/html/$branch/public 대신 설정; 프로젝트 경로

작업은 Pi-Hole을 사용하여 수행할 수 있습니다. "/etc/hosts"를 편집하고 dns 서비스를 다시 시작하십시오.

nano /etc/hosts
pihole restartdns

예:

127.0.1.1       raspberrypi
192.168.1.1     w1.dev.net
192.168.1.2     w2.dev.net
192.168.1.3     w3.dev.net

http://www.no-ip.com 같은 동적 DNS 클라이언트를 사용할 수 있습니다.그런 다음 외부 DNS 서버 CNAME *.mydomain.com 을 사용하여 mydomain.no-ip.com 에 연결합니다.

언급URL : https://stackoverflow.com/questions/138162/wildcards-in-a-windows-hosts-file

반응형