자체 호스트 파일이있는 브라우저?


36

호스트 파일을 지속적으로 수정하여 액세스해야하는 여러 준비 및 테스트 서버가 있습니다 (도메인 이름에 따라 달라 지도록 호스트 파일을 변경해야합니다).

나는이 성가신 것을 발견한다. 작업하려는 각 종류의 사이트마다 휴대용 브라우저를 설정하고 싶습니다. 이를 수행 할 그래픽 웹 브라우저 (다른 브라우저의 렌더링 엔진 기반 브라우저 포함) 버전이 있습니까?

이렇게하면 준비를 테스트하려는 경우 이미 준비와 함께 작동하도록 구성된 인스턴스를 시작할 수 있습니다.

어떤 아이디어?

편집 : 중요한 기능은 브라우징하는 두 브라우저를 동시에 실행하는 기능 some-address.com이지만 하나의 브라우저 1.2.3.4는 요청을 서버로 보내고 다른 브라우저는 요청을 서버로 보냅니다 5.6.7.8.

편집 : (3/16/14)

이 질문은 몇 년 전에 요청되었지만 여전히이를 수행하는 적절한 방법을 모릅니다. 사람들이 문제를 오해하는 것처럼 보이기 때문에 더 자세히 설명하려고합니다. 프록시 서버를 사용하는 것만으로 쉽게 고칠 수있는 것은 아닙니다. 프록시 서버에서 광범위한 규칙을 작성하여 문제를 해결할 수 있다고 생각하지만 간단한 문제가 무엇인지에 대한 복잡한 솔루션입니다.

명확히하기 위해 :

세 개의 웹 서버가 있습니다. 생산, 테스트 및 개발. 각각은 액세스하는 데 사용되는 호스트 이름을 기반으로 사용자 정의하는 다중 테넌트 애플리케이션을 실행합니다. 개념적으로 이는 여러 사이트를 동일한 서버 인스턴스에서 실행할 수있는 컨텐츠 관리 시스템 또는 블로그 엔진과 유사합니다. 호스트 이름을 서버로 지정하면 HTTP 1.1 호스트 이름 매핑을 통해 호스트 이름에 액세스하는 데 사용되는 호스트 이름이 표시됩니다.

호스트 파일을 단순히 다시 작성하는 솔루션은 다른 사이트, 프로덕션, 개발, 테스트 등으로 여러 브라우저 창을 동시에 실행해야하기 때문에 작동하지 않습니다. 따라서 호스트 파일을 지속적으로 변경해도 모든 브라우저 인스턴스에 영향을 미치기 때문에 작동합니다. 한 브라우저의 매핑을 변경하면 다른 브라우저도 해당 서버에 매핑되므로 후속 요청은 잘못된 서버로 이동합니다.

내가 찾고있는 것은이 브라우저 인스턴스 가이 호스트 파일을 사용하도록하고 브라우저 인스턴스가 명령 줄 매개 변수를 통해 해당 호스트 파일을 사용하도록하는 방법입니다. 브라우저 사본을 여러 개 설치해야하더라도 상관 없습니다.

설치된 사본마다 자체 구성 파일을 사용한다고 생각하기 때문에 firefox portable으로 가능할 수 있지만 문제는 사이트를 관리하는 데 사용되는 타사 소프트웨어가 firefox (사이트 자체는 아니지만 관리 도구)와 작동하지 않는다는 것입니다 그러나 크롬과 IE 및 Opera에서는 제대로 작동하지 않습니다.이 문제를 해결하기 위해 소스에 액세스 할 수 없습니다.)


현재 상황에있는 대부분의 사람들은 다른 HOSTS 구성을 가진 두 개의 WinXP 또는 Ubuntu 가상 머신을 실행합니다.
digitxp

@digitxp-예, 이미 생각했지만 여러 VM 및 여러 전체 OS의 오버 헤드를 원하지 않고 몇 사이트를 탐색하기를 정말로 원합니다. 분명히, 다른 선택이 없다면 내가해야 할 일이 될 것입니다.
Erik Funkenbusch

다른 모든 방법이 실패한 경우 : Fiddler Web Debugger (Windows) 또는 GlimmerBlockerCharles Web Debugging Proxy (Mac)는 요청을 즉시 다시 작성할 수 있습니다.
Arjan

@Arjan-프록시는 어느 정도 작동하지만 각 브라우저 인스턴스마다 별도의 프록시 인스턴스가 있거나 매번 프록시 설정을 변경해야 호스트 파일을 변경하는 것이 더욱 성 가실 것입니다.
Erik Funkenbusch

1
아마도 오징어와 같은 웹 프록시는 DNS 확인에서 원하는 방식으로 리디렉션 할 수 있습니까? (물론 브라우저마다 웹 프록시를 구성 할 수 있습니다)
barlop

답변:


19

오징어는 나를 위해 문제를 해결했습니다. 많은 프록시 서버가 동일한 작업을 수행 할 수 있다고 생각합니다.

특히 Squid를 설치해야했습니다. 그런 다음 대체 호스트 파일에 액세스 할 수 있도록 squid.conf를 변경하십시오. 이것은 변경하려는 줄입니다.

#hosts_file /etc/hosts

내 경우에는을 사용했습니다 hosts_file /etc/hosts-squid. /etc/hosts-squid파일을 만들고 호스트 오징어 파일을 변경하여 주어진 URL에 대해 원하는 새 IP 주소에 액세스 할 수 있도록했습니다. 이것이 Squid 프록시 서버를 구성하는 데 필요한 전부였습니다.

그런 다음 프록시 설정으로 브라우저를 시작하는 명령을 만들었습니다. 나는 사용했다 :

chromium-browser --proxy-server=localhost:3128

이 명령을 효과적으로 실행하면 내가 만든 호스트 오징어 파일의 도메인 설정에 액세스 할 수있는 크롬 인스턴스가 실행됩니다.

또한 동일한 컴퓨터에서 프로덕션, 개발 및 로컬 웹 사이트에 모두 액세스하기 위해 여러 Squid 인스턴스를 사용하여 더 많은 프록시 서버를 설정할 수있었습니다. 여러 오징어 인스턴스를 실행하는 방법에 대한 지침은 여기에 있습니다 . 또한 문제와 해결책을 조금 더 자세히 설명 하는 블로그 게시물을 작성했습니다 .


8

자체 호스트 파일을 포함하는 각 브라우저에 가상 환경을 설정하도록 요청한다고 생각합니다.

한 가지 해결책은 Sandboxie 를 사용 하여 각각 자체 호스트 파일을 포함하는 별도의 샌드 박스를 설정하는 것입니다. 호스트 파일을 사용하기 위해 브라우저를 샌드 박스에 설치할 필요는 없으며 해당 샌드 박스 내부에서 시작했습니다. 샌드 박스 내에서 브라우저를 시작하기위한 바탕 화면 바로 가기를 만들 수 있습니다.

단점은 인터넷에서 파일을 다운로드 할 때와 같이 브라우저가 실제 파일 시스템과 분리 될 것이지만 Sandboxie에는 이러한 파일을 샌드 박스 외부로 복사하는 메커니즘이 포함되어 있다는 것입니다.

불행하게도, 동시에 하나 이상의 샌드 박스에서 프로그램을 실행하는 기능은 유료 버전의 샌드 박스에서만 사용할 수 있습니다 (집에서 개인 사용을위한 1 년 라이센스에 15 유로의 세금 포함). 타당성 테스트는 무료 버전을 사용하여 수행 할 수 있습니다.

Linux 사용자의 경우 유사한 제품은 다음과 같습니다.


답장 harrymc에 대해 죄송합니다. 프로그램 %SYSTEM32%/Drivers/etc/hosts에서 Windows 및 /etc/hostsLinux 와 같은 샌드 박스 시스템 파일을 제공 할 수 있는지 확실하지 않습니다 . 확인할 수 있습니까? 몇 년 전에 Windows에서 Sandboxie에 대한 빠른 보안 평가를 수행했기 때문에 Linux 버전을 선호합니다 (실패하고 저자에 대한 보고서는 응답하지 않았습니다).
jww

Sandboxie가 (와)과 같은 샌드 박스 시스템 파일을 지원하는 경우 %SYSTEM32%/Drivers/etc/hosts포인트는 귀하의 것입니다. OS가 지정되어 있지 않으며 Windows / Sandboxie가 작동하는 경우 OS를 보류하지 않는 것이 좋습니다.
jww

AFAIK Sandboxie는 완전히 평행 한 파일 시스템 및 레지스트리를 만듭니다. Linux의 경우 간단한 샌드 박스 프로그램은 arkose 이거나 아마도 sandfox 이지만 경험이 없습니다.
harrymc

고마워 harrymc. 포인트를 수여하는 데 문제가 있습니다. +50의 상자가 표시되지만 클릭 할 수 없습니다. 게다가, 나는 그것이 100의 가치가 있다고 생각했습니다. 어떤 아이디어가 있습니까 (또는 메타로 방황해야합니까)?
jww

현상금 FAQ를 참조하십시오 : 현상금 100의 경우, 반달 한 응답없이 7 + 1 일 후에 절반이 자동으로 수여되고 절반은 사라졌습니다.
harrymc

4

firefox + HostAdmin으로 호스트 파일 변경 프로세스를 자동화 할 수 있습니다

HostAdmin은 Firefox Addon으로 Hosts 파일 수정, 도메인 -IP 매핑 전환에 도움이됩니다. HostAdmin은 고급 호스트 파일 구문을 통해 호스트 파일을 이해할 수 있습니다. 또한 HostAdmin은 Hosts 파일을 변경할 때마다 수동으로도 DNS 캐시를 자동으로 새로 고칩니다.

구성 예

#==== Project 1
# 127.0.0.1 localhost1
127.0.0.1 localhost2
127.0.0.1 localhost3
#====
#==== Project 2
# 127.0.0.1 localhost1
# 127.0.0.1 localhost2
# 127.0.0.1 localhost3  

자세한 정보는 https://addons.mozilla.org/en-US/firefox/addon/hostadmin/

여러 인스턴스

리눅스에서 파이어 폭스 브라우저의 두 인스턴스를 동시에 독립적으로 실행하려면 다음 스크립트를 사용하여 여러 발사기를 만듭니다. 또한 모든 파이어 폭스에 플러그인을 설치하십시오.

파이어 폭스 1

#!/bin/bash
th="/home/$USER/tmp/p1"
mkdir -p "$th"
export HOME="$th"
firefox -no-remote

파이어 폭스 2

#!/bin/bash
th="/home/$USER/tmp/p2"
mkdir -p "$th"
export HOME="$th"
firefox -no-remote  

firefox -P브라우저에서 프로필 옵션 ( )을 사용하여 다른 설정에 대해 기본 프로필을 사용하고 동시에 사용할 수 있습니다.


1
그는 2 개의 호스트 파일 을 동시에 사용하는 2 개의 브라우저를 요구하고 있습니다 .
harrymc


@ harrym c가 업데이트되었습니다.
totti

2

나는 이것이 당신이 요구하는 것이 아니라는 것을 알고 있지만 임시 해결책은 배치 파일을 작성하여 호스트 파일을 교환 한 다음 브라우저를 중단시키는 것일 수 있습니다.

최소한 그것은 당신이하고있는 일을 최소화 할 것입니다.

또는 호스트 파일에서이 서버의 이름을 완전히 다르게 지정할 수 있으므로 처음으로 전환 할 필요가 없습니다.


웹 응용 프로그램이 올바른 콘텐츠를 렌더링하기 위해 호스트 이름에 의존하기 때문에 이름을 바꿀 수 없습니다. 또한, 내가하고 싶은 이유는 동시에 여러 브라우저를 실행할 수 있고 하나는 준비하고 다른 하나는 개발해야하기 때문입니다. 호스트 파일을 교환하여 그렇게 할 수 없습니다.
Erik Funkenbusch

@MystereMan : META BASE에 대해 이야기하는 경우 브라우저 감지 서버 측을 수행하십시오. 다른 URL에는 자신의 호스트 이름이 없어야합니다.
Tamara Wijsman

@TomWij-아니요, 메타베이스에 대해 이야기하고 있지 않습니다. IP 기반이 아닌 호스트 기반 가상 호스팅에 대해 이야기하고 있습니다. 호스트 이름 필드는 액세스 할 사이트를 결정합니다.
Erik Funkenbusch

@MystereMan : 그렇다면이 답변에 대한 첫 번째 의견은 의미가 없습니다. "올바른 콘텐츠를 렌더링하는 웹 응용 프로그램"에 대해 이야기하면서 가상 호스트가 그와 어떤 관련이 있는지 알 수 없습니까?
Tamara Wijsman

@TomWij-단일 IP로 단일 서버에서 여러 사이트를 호스팅하는 다중 테넌트 CMS 시스템이 있습니다. 특정 사이트를 보려면, 당신은 해야합니다 그렇지 않으면 당신은 기본 인스턴스에 액세스하는 호스트 이름을 사용합니다. 이 서버의 프로덕션, 스테이징 및 개발 버전간에 전환해야합니다. 즉, 도메인 이름을 해당 IP 주소로 즉시 매핑하는 방식이 변경됩니다. 호스트 파일 에서이 작업을 수행 할 수 있지만 전역 적으로 변경되므로 두 개의 다른 브라우저 인스턴스에서 준비 및 프로덕션의 동시 복사본을 열 수 없습니다.
Erik Funkenbusch

1

이 목적으로 Privoxy를 사용할 수 있습니다.


Privoxy는 정확히이 목적을 위해 어떻게 작동합니까? 그것은 당신은 모든 인스턴스에 대한 글로벌 프록시를 정의 할 수 있습니다 .. 대부분의 브라우저와는 인스턴스 당 프록시를 정의 할 수 없기 때문에 어느 것도 작품의 또 다른 로컬 프록시 서버처럼 보이는
에릭 Funkenbusch

@MystereMan : 요청을 프록시 처리하여 요청을 다른 요청으로 조작하는 것이 매우 쉽습니다 . 프록시 서버에 대해 말도 안됩니다. Mirosoft Internet Explorer (GUI), Mozilla Firefox (GUI), Google Chrome (CLI --proxy-server =), Apple Safari (GUI), Opera (GUI) 및 기타 브라우저 (GUI 또는 CLI) 당신이 당신의 자신의 프록시 서버를 설정할 수 있습니다 ...
Tamara Wijsman

@TomWij-아니요. IE, Chrome 및 Safari는 모두 "인터넷 설정"의 전역 프록시 서버 설정을 사용합니다. 즉, 하나의 웹 브라우저에서 변경하면 모든 웹 브라우저에서 변경됩니다. Firefox에는 이것에 대한 자체 설정이 있지만 불행히도 Firefox는 우리가 사용하는 CMS에서 작동하지 않기 때문에 사용할 수 없습니다 (다른 모든 것).
Erik Funkenbusch

@Mystere Man : 잘못되었습니다. 생각을 반복하지 말고 각 개별 브라우저가 제공하는 구성을 확인하십시오. 실제로 문서를 읽으려는 노력을 기울이지 않으면 다른 사람들에게 적용되지 않는 너무 구체적인 것을 요구할 때 문제를 해결하지 못할 것입니다. 앞에서 말했지만 읽지 않은 것 같습니다. 모든 브라우저에서 해당 브라우저에 프록시 서버를 설정할 수 있습니다. Chrome은 CLI 매개 변수를 제공합니다 --proxy-server=.
Tamara Wijsman

1
흠, 나는 꽤 오랫동안 그것을 사용하지 않았기 때문에 Safari에 대해 잘못되었을 수 있습니다. 그러나 나는 당신을 오해한다고 생각합니다. 왜 모든 단일 브라우저에서 다른 프록시 서버를 원하십니까? "x.com = production; stage.x.com = staging; dev.x.com = development"와 같은 것이 서버에서 단일 IP 및 호스트 헤더 리디렉션을 제공하는 것만으로는 작동하지 않는 이유가 혼란 스럽습니다. ...
Tamara Wijsman

1

이것이 편리한 지 모르겠지만 가능한 해결책은 브라우저를 사용하여 컴퓨터에 IIS를 설치하고 hosts파일 을 변경하는 서버 측 스크립트 (예 : ASP.net, PHP, Ruby ...)를 제공하는 것입니다. 그런 다음 실제 페이지로 리디렉션하십시오. 그런 다음 브라우저에서 해당 스크립트에 대한 책갈피를 작성하십시오. 예를 들어 파일 http://localhost/config_ie.rb을 변경하고 hosts(물론 해당 파일에 대한 올바른 권한이 필요함) 실제 페이지에 대해 302 번 재 작성을 수행하십시오.


1
대부분의 사람들이 이것에 대해 이해하지 못하는 부분은 효과적으로 작업하기 위해서는 서로 다른 호스트 / IP 매핑을 사용하여 여러 브라우저를 동시에 실행할 수 있어야한다는 것입니다. 예를 들어, 프로덕션 및 테스트 및 디버그 인스턴스를 서로 다른 브라우저 인스턴스에서 열어야합니다. HTTP 1.1 호스트 이름 매핑은 호스트 이름을 기반으로 올바른 사이트를 매핑하기 때문에 각각 동일한 호스트 이름을 사용해야합니다. 호스트 파일 만 변경하면 브라우저의 모든 인스턴스가 이제 단일 인스턴스가 아니라 새 서버에 매핑됩니다.
Erik Funkenbusch

@Erik Funkenbusch : 설명해 주셔서 감사합니다. 남은 아이디어는 다음과 같습니다. a) 하나의 개념은 파일 시스템 가상화와 같은 것을 사용하는 것입니다. 파일 시스템 가상화는 Windows에서 "데이터 리디렉션"이라고하며 민감한 경로에 데이터를 쓰는 레거시 응용 프로그램을 지원하기 위해 UAC에서 일반적으로 사용됩니다. 어쩌면 자신의 목적으로 사용할 수있는 옵션이있을 수 있습니다. 그런 다음 hosts모든 프로세스에 대해 사용자 정의 파일을 가질 수 있습니다 . b) 로컬로 DNS 가로 채기 : "iexplore.exe"등의 요청은 제공 한 일부 목록에 따라 조작 될 수 있습니다. -당신이 좋아하는 아이디어가 있습니까?
Michael Kremser

1

전체 VM이 너무 많으면 컨테이너 기반 솔루션이 할 수 있습니다.

우리가 여기서 리눅스에 대해 이야기하고 있다면 lxc가능한 해결책 일 수 있습니다.

그 외에도-최소한의 X11-linux로 가득 찬 VM조차도 크지 않고 (최대 2GB 디스크) 오늘날의 하드웨어에서는 그다지 많은 리소스 (최대 512MB RAM)를 소비하지 않습니다 ...

LubuntuVM은 여기서 할 수 있습니다.


RAM이 있고 처리가 정상입니다. 공유 디스크는 시스템을 손상시킵니다.
jww

0

비교적 간단한 솔루션 중 하나 (하지만 약간의 리소스가 많은 경우)는 호스트에서 몇 개의 가상 머신을 실행하는 것입니다. 각 가상 머신에는 고유 한 호스트 파일이 있습니다.

따라서 스테이징 환경을위한 가상 머신 하나, 제품을위한 가상 머신 등이 있습니다.


아마도 질문 아래의 처음 두 의견을 읽어야 할 것입니다. 이것은 4 년 전에 해결되었습니다.
Erik Funkenbusch

실제로 나는 의견을 보았지만이 답변을 게시 한 후에야 비로소. 그러나 나는 여전히 같은 유형의 문제를 가진 다른 사람들을 도울 수 있기 때문에 별도의 답변 (단지 의견이 아닌)으로 생각하는 것이 합리적이라고 생각합니다.
Pete

공유 디스크 병목 현상으로 인해 두 개의 VM이 대부분의 워크 스테이션을 손상시킵니다. 나는 하나의 VM 오픈으로 약간 고통받습니다 (하나는 듀얼 쿼드 코어가 장착 된 최신 Mac Mac Book Pro이고, 두 번째는 싱글 쿼드 코어가 장착 된 최신 ASUS 노트북입니다). 두 개의 VM은 고통 스러울 것입니다.
jww
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.