Chrome에서 etc / hosts 파일 조작 시뮬레이션 때 특정 도메인을 localhost로 바꾸는

표준 etc / hosts 파일이 아닌 로컬에서 호스트 이름 조회를 참조하도록 Chrome을 설정하려면 어떻게해야하나요?

웹 사이트를 디버깅 할 때 특정 도메인을 localhost로 바꾸는 C : \ Windows \ system32 \ drivers \ etc \ hosts에 항목을 설정하면 유용 하므로 웹 사이트 나 도메인의 즉석 버전을 테스트 할 수 있습니다. 실제 실제 사이트와 충돌합니다.

이 프로세스를 시뮬레이션하고 단순화하는 방식으로 Chrome을 설정할 수 있습니까?

확장 프로그램에서 너무 많은 보안 위험이 있더라도 etc / hosts가 수정 된 것처럼 작동하도록 브라우저 인스턴스를 수정하지 않습니다.



답변

방금 Host Switch Plus Chrome 확장 프로그램을 찾았습니다 .


답변

실제 목표 를 달성하는 한 가지 방법 은 Chrome 확장 프로그램이나 Chrome을 전혀 포함하지 않습니다. 그렇게하면 지능형 프록시 HTTP 서버를 설정하고 Chrome을 가리킨 다음 표지 아래에 URL을 다시 쓰는 프록시 서버에 다시 쓰기 규칙을 추가 할 수 있습니다.

다양한 프록시 HTTP 서버를 사용하여이 작업을 수행하는 사람들이 많이 있습니다. 여기에 대한 답변으로 각 서버를 자세히 다루기에는 너무 많습니다. 광고, 웹 버그 등을 재핑 할 목적으로 사용하지만 원칙과 메커니즘은 수행하려는 작업과 동일합니다. 그들은 WWW 브라우저가 정상적으로 특정 URL을 가져 오기를 원하지만 실제 수신되는 컨텐츠는 다른 (로컬 또는 다른) URL의 컨텐츠가됩니다. WWW 브라우저가 알아야 할 유일한 것은 프록시 서버를 통해 인터넷과 통신한다는 것입니다.

예를 들어 SourceForgeAd Zapper를 참조하십시오 . 프록시 서버에서 URL을 즉시 다시 쓰기 위해 Squid 프록시 HTTP 서버와 함께 작동하는 Perl 스크립트입니다. 구성 데이터베이스에서 알 수 있듯이 사람들은 뉴스 서비스에 대한 “인쇄 가능한”기사 형식을 항상 볼 수있게하는 것에서부터 인터넷 포르노 사이트의 무작위 광고 리디렉션을 제거하는 것에 이르기까지 광범위한 목적으로이 메커니즘을 채택했습니다.

이것은 hosts파일 로 수행하는 것보다 훨씬 낫습니다 . 이는 WWW 서비스 조작에 부적합한 메커니즘입니다. hosts이름 → 주소 조회 만 처리 하고 WWW 브라우저를 제외하고 이름 → 주소 조회를 수행해야하는 다른 모든 항목을 숨겨야 하며 (아마도 이미 알고 있듯이) 다시 작성된 모든 호스트 이름을 가상 호스트로 추가로 설정해야합니다. 대상 컨텐츠 HTTP 서버 이와는 대조적으로 이러한 종류의 재 작성 프록시 HTTP 서버는 URL을 다루며 처음에는 HTTP 및 WWW 브라우저를 사용하도록 구성된 WWW 브라우저에만 영향을줍니다.. 따라서 JavaScript URL을 다시 작성하고 동일한 WWW 사이트의 다른 모든 것을 그대로 두는 것과 같은 작업을 수행 할 수 있습니다. 호스트 이름의 전체로드를 하나만 다시 작성하십시오. 패턴 매칭을 수행한다. (Ad Zapper의 구성 데이터베이스에는 바로이 인스턴스가 있습니다.주의) 또한 하나의 WWW 브라우저가 재 작성 프록시를 통해 세상을보고 있고 다른 하나는 동시에 단일 컴퓨터에서 직접 보는 것과 같은 작업을 수행 할 수 있습니다.


답변

HostAdmin을 종교적으로 사용했지만 여전히 사용 하고 있지만 항상 캐시를 비우거나 새로운 시크릿 창을 열어야하는 번거 로움이 있었기 때문에 작년에도 비슷한 상황에 도움이되도록 Chrome 확장 프로그램을 개발했습니다. 최근에 Chrome 웹 스토어에 LiveHosts 라는 매우 거친 버전을 게시했습니다 .

요점은 @JdeBP가 옳고 프록시를 설정하는 것이 올바른 해결책이지만 종종 옵션이 아니라는 것입니다. Chrome 확장 프로그램은 호스트 파일을 변경할 때 발생하는 상황을 정확하게 복제 할 수 없으므로 LiveHosts가하는 일은 다음과 같습니다.

  • 여러 개의 호스트 이름 / IP 항목을 설정할 수 있습니다.
  • 정의 된 호스트 이름 중 하나에 대한 요청을 감지합니다.
  • 적절한 HTTP 호스트 헤더를 사용하여 요청을 원하는 IP로 리디렉션하십시오.
  • 주소 표시 줄 URL에 시각적 참조 (추악한 점은 인정할 것입니다)를 추가합니다 http://127.0.0.1/www.example.com/whateverelse.
  • 다른 탭에서 다른 호스트 / IP 쌍을 동시에 허용합니다.

예쁘지는 않지만 환경을 빠르게 전환하려는 표준 웹 개발자에게는 충분합니다. 물론 몇 가지주의 사항이 있습니다.

  • 서버에 따라 사이트 URL을 참조하는 웹 페이지의 일부 (예 : href 및 src 속성)는 원본과 다를 수 있습니다.
  • window.location JavaScript 스 니펫을 버릴 수있는 다른 값이 있습니다.
  • 대부분의 Cross-Origin 요청은 작동하지 않습니다.

답변

가상 호스트 내가 예상대로 나를 위해 일을하는 유일한 하나입니다 플러그인.

호스트 리디렉션이나 DNS가 없어도 서버의 가상 호스트에 액세스합니다.


답변

확장 DNS Overrider를 사용해보십시오.

Using DNS Overrider you can replace hostname on the fly without access to
system settings such as hosts file. DNS Overrider enables you to select what
rules to apply via the extension settings page.

https://chrome.google.com/webstore/detail/dns-overrider/acmhaiiijfheggcaanjlgpampclpbnoh/