Windows 호스트 파일에서 호스트 이름의 IP 및 포트를 어떻게 지정합니까? 지정하고 싶습니다

Windows hosts파일 에서 두 개의 다른 포트로 호스트 이름을 지정하고 싶습니다 .

그것을 할 수있는 방법이 있습니까? 아니면 Windows 자체에서 허용되지 않습니까?

지난 8 시간 동안 솔루션 검색에 시간을 허비하고있었습니다.

호스트 파일에서 포트를 지정할 수 hosts있습니까? 예 : 127.0.0.1:80127.0.0.1:9211



답변

포트없이 IP 주소를 사용하십시오. 예:

192.168.2.50  example.com

그런 다음 브라우저 (또는 다른 프로그램)에서 192.168.2.50:5555에 액세스하십시오.

http://example.com:5555/

hosts파일에서 찾을 수 있습니다 :

리눅스 /etc/hosts

윈도우 :C:\Windows\System32\drivers\etc\hosts


답변

호스트 파일의 IP에 매핑 된 호스트 이름과 포트 번호를 연결할 수 없습니다. FiddlerScript를 사용하여 Fiddler 로이를 달성 할 수 있습니다 . 

if (oSession.HostnameIs("somesite.com")){
    oSession.bypassGateway = true;
    oSession["x-overrideHost"] = "1.2.3.4:8080";
}

답변

  • hosts파일은 호스트 이름 확인만을위한 것입니다
  • 브라우저 , 직접 지정 포트가없는 경우 : 즉 <hostname>:<port>, 기본값 포트80

일반적인 문제 시나리오

  1. 응용 프로그램은 일반적으로 동일한 기본 IP 주소에 자신의 서버를 설정 127.0.0.1일명 localhost (호스트 파일에 정의) .
  2. 다른 기존 / 실행중인 서버 간의 충돌을 피하기 위해 응용 프로그램에서는 일반적으로 IP 주소가 아닌 포트를 변경할 수 있습니다.

    2a. 루프백 예약 주소 공간 에서 서버의 IP 주소를 다른 주소로 변경할 수 있다면 호스트 파일에서 포트를 설정하지 않았을 것입니다. 127.0.0.0/8

가능한 해결책

Windows에 포함 된 네트워킹 도구 netsh를 포트 프록시로 사용하여이 문제를 해결할 수 있습니다 .


개요

example.app
 |                               <--browser defaults to port 80
 +--> example.app:80
       |                         <--Hostname resolution by Hosts File
       +--> 127.65.43.21:80
             |                   <--Link by netsh Utility
             +--> 127.0.0.1:8081

행위

  • 서버를 시작하십시오 localhost:8081
  • hosts 파일 에 “local DNS”를 새로운 줄로 추가하십시오
    • 127.65.43.21 example.app
      • 네트워크의 모든 무료 주소를 127.0.0.0/8사용할 수 있습니다.
      • 참고 :127.65.43.21:80 다른 서비스가 차지하지않는다고 가정합니다.
      • 당신은 확인할 수 있습니다 netstat -a -n -p TCP | grep "LISTENING"
  • netsh 명령 유틸리티를

    사용하여 다음 네트워크 구성을 추가하십시오.

    • netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
  • 에서 서버에 액세스 http://example.app

참고 :
-이 명령 / 파일 수정은 관리자 권한 으로 실행해야합니다.

netsh를 portproxy에서 IPv6 라이브러리를 필요로 다음 명령을 사용하여 설치 그렇지 않으면, 일반적으로 그들은 또한 기본적으로 포함되며, 심지어에만 사용 v4tov4에 :netsh interface ipv6 install


다음 명령으로 추가 한 항목 수 있습니다 .

netsh interface portproxy show v4tov4

다음 명령을 사용 하여 항목제거 할 수 있습니다 .

netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21


자료 링크 :

참고 :이 답변은 stackoverflow에 대한이 비슷한 질문 / 답변에서 논의 한 내 답변과 중복 됩니다.