2012-10-11 7 views
2

내 로컬 컴퓨터에서 IP로 잠겨있는 원격 공급 업체의 웹 사이트 (회사 서버에 액세스 할 수 있음)로 연결하려고합니다. SSH 터널을 설정하고 공급 업체 웹 사이트의 URL로 이동할 때 문제없이 API에 액세스 할 수있는 서버에서 터널링을 수행하고 있습니다. 404 찾을 수 없음 오류가 발생합니다. 여기 내가 사용하고 무엇을 :문제 SSH 원격 서버에 터널링

ssh -f -N [email protected] -L 7777:vendorhostexample.com:80 

모든 터널이 올바르게 설정을 나타냅니다 만, 나는 그런 '에 http : // localhost를 : 7777 /는 foobar'로 URL을하려고하면, 나는 404 오류가 발생합니다. 어떤 아이디어?

답변

3

귀하의 문제는 당신이 "위치 : localhost"를 HTTP 헤더를 보내는되는 대상 웹 서버가 버추얼 호스트를 사용하는 경우, 그것은 "localhost"를하지 웹 사이트 "vendorhostexample.com"

를 위해 웹 사이트에 대한 조회하려고합니다 의미

한 가지 방법은 Ryan이 호스트 파일을 수정하고 vendorhostexample.com이 127.0.0.1에 있다고 말하면서 브라우저에 입력 할 때 올바른 "호스트 :"http와 함께 터널을 통과하게됩니다 헤더 세트.

또 다른 방법으로 firefox의 호스트 헤더를 this one과 같이 변경하는 브라우저의 확장 프로그램을 설치하고 있습니다.

+0

마침내 이것을 보면서 주위에있어 ... 호스트 헤더를 변경하면 작동하지만, 난 그냥 내 localhost에 공급 업체의 URL을 가리키는하여 작동하지 않을 수 있습니다 - 왜이 작동하지 않습니다? 나는 항상 브라우저를 통과하지는 않으며 필요하지 않다면 내 코드에서 호스트를 변경하고 싶지 않습니다. – acvcu

+0

호스트 파일 (Linux의 경우/etc/hosts)에 127.0.0.1에있는 vendorhostexample이라는 행을 추가하는 행을 추가하면 호스트 헤더를 설정할 필요가 없습니다. 이 줄은 다음과 같습니다 :'127.0.0.1 vendorhostexample.com www.vendorhostexample.com' – Valor

-1

당신은 이것으로 HTTP를 위반하고 있습니다. 브라우저가 HTTP 헤더에 호스트 이름 localhost을 전송하고 있습니다. 이는 공급 업체 사이트의 localhost 웹 사이트를 요청했음을 의미합니다. 거의 확실하게 서버의 localhost 사이트에 머물러 있지 않으므로 404가 표시됩니다.

사용자는 HTTP를 터널링 할 수 없습니다. 회사 서버에 적절한 HTTP 프록시를 설정해야합니다.

+0

Http 프록시를 설정하는 가장 좋은 방법은 무엇입니까? – acvcu

+0

가장 좋은 방법은 없습니다. 하나를 선택하고 이동하십시오. http://www.squid-cache.org/ –

+0

당신은 이것을 위해 http 프록시를 셋업 할 필요가 없다. 하나도없이 그것을 성취 할 수있는 많은 방법이있다. @raynix와 같이 localhost를 변경하면 브라우저 확장을 추가하여 요청의 "Host :"헤더를 바꿀 수 있습니다. – Valor

1

당신은 파일 (Linux의 경우/etc/hosts 파일을) 지역 호스트를 편집하고, 같은 라인을 추가 할 수 있습니다

127.0.0.1 vendorhostexample.com 

하고 다시 시도하십시오.

+0

나는 이것을 시도한 후에도 여전히 404를 얻고있다.이 방법이 작동하려면 터널 양면에 포트가 80이어야 하는가? – acvcu

2

다른 모든 사람들은 잘못된 가상 호스트와 일치하는 도메인 이름으로 이미 문제를 언급했습니다. 또 다른 해결책은 동적 터널을 사용하는 것입니다.

-D 8080 플래그로 연결을 열면 SSH가 동적 터널을 열고 포트 8080에서 SOCKS 프록시를 노출합니다. 그런 다음 브라우저 (또는 선택한 응용 프로그램)를 SOCKS 프록시를 사용하도록 설정 한 경우 localhost : 8080을 사용하면 모든 트래픽을 서버로 터널링 할 수 있습니다.