hosts
파일은 호스트 이름 확인만을위한 것입니다
- 브라우저 , 직접 지정 포트가없는 경우 : 즉
<hostname>:<port>
, 기본값 포트80
일반적인 문제 시나리오
- 응용 프로그램은 일반적으로 동일한 기본 IP 주소에 자신의 서버를 설정
127.0.0.1
일명 localhost
(호스트 파일에 정의) .
다른 기존 / 실행중인 서버 간의 충돌을 피하기 위해 응용 프로그램에서는 일반적으로 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에 대한이 비슷한 질문 / 답변에서 논의 한 내 답변과 중복 됩니다.