2017-10-29 14 views
1

일부 http 쿼리를 통해 사이트로 이동하는 데 리다이렉션 (프록시를 통해)하는 중 문제가 발생하지만 다른 http 동일하게 보일 것 같은 질문은 나에게 또 다른 것을 준다. 이 사이트는 namecheap에서 호스팅되기 때문에 어떤 서비스를 제공하는지 직접 제어 할 수는 없습니다 (분명히 우리는 어떤 콘텐츠가 그곳에 있는지 결정했습니다).호스트 이름별로 요청이 하나의 사이트를 반환하지만 IP로 요청하면 다른 것이 반환됩니다.

한 가지 방법은 컬을 사용하여 내 로컬 컴퓨터에, 그것을 repro 수 수는 다음과 같습니다 curl 198.187.29.248 -L :

  • curl ftl.ltd -L 원래 소유자가 오래된 프로토 타입에 간다 :
    • 올바른 최소한의 사이트로 이동

      여기서 : nslookup ftl.ltd 출력 198.187.29.248

      나는 th의 헤더를 확인했습니다. e 요청은 동일하며 198.187.29.248은 ftl.ltd가 해결 한 주소이며 브라우저가 보내는 헤더를 복제하려고 시도했습니다. 내가 알 수있는 한, IP에 의한 나의 요청과 호스트 명에 의한 요청간에 전혀 다른 점은 없다는 것을 알 수 있습니다.

      분명히 이러한 요청이 어떻게 처리되었는지에 대해 오해하고 올바른 대답을 찾지 못해서 대답에 답할 수 없습니다. 이 분야의 전문 지식을 가진 사람이 어떻게 될 수 있는지에 대한 아이디어가 있습니까?

      감사

      크리스

  • +0

    "요청의 헤더가 동일하다는 것을 확인했습니다."호스트 필드가 다를 수 있습니다. – tkausl

    +0

    2 개의 동일한 호스트 값을 사용하면 아무런 차이가 없습니다. 나는 '호스트'가 두 요청 모두에서 ftl.ltd 였고 '198.187.29.248'이되도록 강요했다. 둘 다 똑같은 결과를 낳았습니다. –

    +0

    예를 들어, 헤더에 사용 된 경우 다음 두 경우 모두에서 동일한 결과가 나타납니다. - 'host : ftl.ltd - 사용자 에이전트 : curl/7.47.0 - accept : */* –

    답변

    0

    이미 요청 헤더를 확인했다면, DNS 레코드는 원하는 IP를 반환하는 것은,이에 대한 dig 사용할 수 있는지 확인 :

    dig @8.8.8.8 ftl.ltd +trace 
    

    IPv6에 대해서도 확인하십시오.

    dig @8.8.8.8 AAAA ftl.ltd +trace 
    

    여기 dig 구글에서 DNS 서버를 사용하고 마지막에 이런 식으로 뭔가를 반환해야합니다 :

    ftl.ltd 1200  IN  A  198.187.29.248 
    
    이의 아이디어는 항상 같은 값을 받고 있는지 확인하고 아마 당신이 가리키는을 폐기하는 것입니다

    한 호스트에서 다른 호스트로 도메인을 옮긴 경우 DNS가 복제되었습니다.

    IP 또는 호스트 이름을 통해 요청을 수행하고 각각에 대해 다른 결과를 얻는 것은 서버가 가상 호스트를 지원하도록 구성 될 수 있기 때문입니다.

    단일 IP 주소/호스트에서 둘 이상의 도메인/하위 도메인을 호스팅하는 기술을 가상 호스트라고합니다.

    curl -v -L -H 'Host: www.ftl.ltd' 198.187.29.248 
    

    만 FTL 사용하여이 요청 (다를 수 :

    이것은 (www.ftl.ltd 사용)와 같은 요청에 대한 응답이 있음을 의미한다.*.ftl.ltd

    : (주)) :이 ftl.ltd 또는 많은 casese에 www.ftl.ltd 서로에 대한 하나 개의 가상 호스트가 될 수는 일반적으로 와일드 카드를 사용 모두에 대해 동일한 가상 호스트가 될 수 있기 때문에 이것에 대한

    curl -v -L -H 'Host: ftl.ltd' 198.187.29.248 
    

    이유입니다

    은 IP로 직접 요청을 수행 할 때 :

    curl -v -L 198.187.29.248 
    

    그것은 귀하의 경우 것으로 보인다 정상적으로 제어하지 않는 default_server를 정의하지만, 공유 환경에서 무언가를 반환 할 것이라고 호스트 이름 만 사용하도록 제한됩니다.

    +0

    안녕하세요 @ 당신의 대답에 감사드립니다. 불행히도 나는 그 중 어느 것도 문제가 아니라고 확신한다. 발굴은 훌륭한 결과를 보여 주며 내가 말한 것처럼 직접 IP 요청에서 '호스트'헤더를 사용하더라도 문제가 존재하는지 확인했습니다. 즉, 마지막 3 개의 예는 모두 오류가있는 사이트를 반환합니다. 다음 단계는 wireshark를로드하여 _exactly_가 전송되는지 확인하는 것입니다.하지만 여전히 당황 스럽습니다! –

    +0

    아마도 귀하의 사이트에 '가상 호스트'가 없거나 구성되지 않았습니다. – nbari

    +0

    와우 - 더 많은 조사가 이루어지면 당신이 옳았다는 것이 밝혀졌습니다. 내 요청을 생성하는 데 'ARC'를 사용했지만 'ARC'(호스트 지정)에서 보내기를 클릭하는 것과 호스트에서 내 컴퓨터를 떠나는 것 사이에 호스트가 IP 주소로 대체됩니다. 리눅스 박스의 컬 (curl) 방식을 사용하면 올바른 결과를 얻을 수 있으므로 문제가 'ARC'또는 Windows에 설치된 것으로 추측됩니다. –