[asp.net] 터널링을 통해 로컬 호스트를 인터넷에 노출 (ngrok 사용) : HTTP 오류 400 : 잘못된 요청; 잘못된 호스트 이름

이전 버전의 질문에는 다음과 같은 것이 있습니다 : localhost 대신 ip 주소로 웹 사이트를 탐색 하십시오. 지금까지 수행 한 거의 개요가 있습니다 … 로컬 IP가 작동합니다. 그런 다음 ngrok을 찾았으며 분명히 IP를 통해 연결할 필요가 없습니다.


내가하려는 것은 localhost에서 실행중인 웹 사이트를 인터넷에 노출시키는 것입니다. 나는 이것을 할 도구를 발견했다 : ngrok.

Visual Studio에서 웹 사이트를 실행하면 웹 사이트가 localhost / port #에서 시작됩니다. 명령 행에서 “ngrok http port #”명령을 실행합니다. 모든 것이 잘 시작되는 것 같습니다. 몇 가지 URL을 생성하고 ngrok 검사 URL (localhost : 4040)이 작동합니다.

유일한 문제는 생성 된 URL로 갈 때 HTTP 오류 400이 발생한다는 것입니다. 잘못된 요청 잘못된 호스트 이름입니다. 이것은 “ngrok http wrongport #”를 실행할 때와는 다른 오류입니다.이 오류는 호스트에서 찾을 수없는 오류입니다. 따라서 뭔가 좋은 일이 일어나고 있다고 생각합니다. 나는 단지 무엇을 말할 수 없다 …

터널링 서비스를 통해 내 사이트를 인터넷에 노출시키는 과정에서 누락 된 단계가 있습니까? 있으면 ngrok 설명서에서 찾을 수 없습니다.



답변

ngrok에서이 문제를 해결하십시오. 말로 표현할 수없는 말로, 일부 응용 프로그램은 예상과 다른 호스트 헤더를 볼 때 화를냅니다.

다음 명령을 실행하면 문제가 해결됩니다.

ngrok http [port] -host-header="localhost:[port]"


답변

다음 명령은 문제를 해결합니다

ngrok http -host-header=localhost 8080


답변

이것은 나를 위해 작동하지 않았습니다. 다음을 수행 할 수 있습니다.

IIS Express의 경우

VS 2015에서 : .vs\config\applicationhost.config프로젝트 의 폴더로 이동

VS 2013 및 이전 버전 : %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config

다음과 같은 바인딩을 찾으십시오.

<binding protocol="http" bindingInformation="*:5219:localhost" />

나를 위해 포트 5219에서 실행되는 프로젝트였습니다

로 변경

  <binding protocol="http" bindingInformation="*:5219:" />

IIS Express는 이제 해당 포트에서 들어오는 모든 연결을 수락합니다.

단점 : IIS Express를 관리자 권한으로 실행해야합니다.

또는 Ngrok에서 호스트 헤더를 다시 작성할 수 있습니다.

ngrok.exe http -host-header=rewrite localhost:5219


답변

https이 작품을 위해 :

ngrok http https://localhost:<PORT> -host-header="localhost:<PORT>"


답변

가장 간단한 것은 iisexpress-proxy + ngrok를 사용하는 것입니다 .

먼저 전 iisexpress-proxy세계적으로 npm으로 설치 합니다.

npm install -g iisexpress-proxy

그런 다음 로컬 호스트를 프록시로 사용합니다. 예를 들어 내 사이트가에서 실행되고 있다고 가정합니다 3003.

iisexpress-proxy 3003 to 1234512345프록시하려는 새 http 포트는 어디에 있습니까 ?

그런 다음 ngrok를 실행할 수 있습니다.

./ngrok.exe http 12345

그냥 작동합니다! 😃

그러나 나는 그것이 작동한다고 생각합니다 http. 지금은 https테스트에 사용하지 않지만 작동하더라도 일반적으로 항상 많은 작업입니다.


답변

단계.

  1. ngrok.exe 디렉토리에서 콘솔의 명령을 실행하십시오. ngrok http 포트, 즉 ngrok http 80 https://www.screencast.com/t/oyuEPlR6Z 설정

  2. Ngrok 앱에 대한 URL입니다.

응용 프로그램에 터널을 만듭니다.

감사 .


답변