Yerel ana makineyi tünelleme yoluyla internete gösterme (ngrok kullanarak): HTTP hatası 400: hatalı istek; geçersiz ana bilgisayar adı


210

Sorunun önceki sürümlerinden, şu var: Şimdiye kadar yaptığımın hemen hemen ana hatlarını belirten localhost yerine ip adresine sahip web sitesine göz atın ... Yerel IP çalışıyorum. Sonra ngrok'u buldum ve görünüşe göre IP üzerinden bağlanmam gerekmiyor.


Ne yapmaya çalışıyorum web sitem localhost üzerinde çalışan internete maruz olduğunu. Bunu yapacak bir araç buldum: ngrok.

Web sitesini görsel stüdyoda çalıştıran web sitesi localhost / port # ile başlar. Komut satırında "ngrok http port #" komutunu çalıştırıyorum. Her şey yolunda gibi görünüyor. Birkaç URL oluşturuyorum ve ngrok denetim URL'si (localhost: 4040) çalışıyor.

Tek sorun, oluşturulan URL'lere gittiğimde, 400 HTTP hatası alıyorum: hatalı istek geçersiz ana bilgisayar adı. Bu bir ana bilgisayar bulunamadı hatası olan "ngrok http wrongport #", çalıştırmak daha farklı bir hatadır ... bu yüzden iyi bir şey oluyor düşünüyorum. Ne diyemem ...

Sitemi tünelleme servisi aracılığıyla internete açığımda kaçırdığım bir adım var mı? Varsa, bunu ngrok belgelerinde bulamıyorum.

Yanıtlar:


564

Ngrok ile bu sorunu dert edin. Kaçınılmaz sözlerle, bazı uygulamalar beklenenden farklı bir ana bilgisayar üstbilgisi gördüklerinde kızarlar.

Aşağıdaki komutu çalıştırmak sorunu çözmelidir:

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

3
Teşekkürler. Daha önce Devin Rader'in talimatlarını burada ayrıntılı olarak izledim, ancak bu artık bu yolu kolaylaştırıyor. twilio.com/blog/2014/03/…
sobelito

Bu çözüm, applicationHost.config dosyasına (vs2015 / iisexpress) başka bir bağlama eklemekte sorun yaşıyorsanız da işe yarar. Eklemek zorunda değilsiniz sadece bu cevabı kullanın. Son olarak, her seferinde adresi değiştirmekten kaçınmak için özel bir alan için ödeme yaptıysanız yukarıdaki cevaba -subdomain = mysubdomain ekleyin.
trevorc

4
Bunu yeterince değerlendiremiyorum! IISExpress bağlarınızı ve ağ ayarlarınızı kesmek için tüm karmaşık ve buggy talimatları için bu, tereyağı ile sıcak bir bıçak gibi kesilir.
Neil Laslett

19
Yerel http yerine https üzerindeyse, yukarıdaki yukarıdaki varyasyon şu şekilde çalışır:ngrok http https://localhost:44362 -host-header="localhost:44362"
Jsinh

1
vay, neredeyse 2 saatini boşa harcadım. benim tek sorunum -host-başlığında https eklemek oldu. böyle: ngrok http https://localhost:44392 -host-header="https://localhost:44392" https: // -host-header parametresinden kaldırılması sorunumu çözdü. Teşekkürler
Dave

48

Aşağıdaki komut sorunu çözecektir

ngrok http -host-header=localhost 8080

2
ASP.NET Core kullanıyorsanız app.UseHttpsRedirection(), 307 Geçici Yeniden Yönlendirmeyi önlemek için Başlangıç ​​sınıfınızda da yorum yapmanız gerekir .
Mark G

39

Bu benim için işe yaramadı. aşağıdakileri yapabilirsiniz:

IIS Express için

VS 2015'te: .vs\config\applicationhost.configProjenizdeki klasöre gidin

VS 2013 ve öncesinde: %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config

Şu bağlayıcıyı bulun:

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

Benim için 5219 numaralı limanda çalışan bir projeydi

olarak değiştir

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

IIS Express artık bu bağlantı noktasına gelen tüm bağlantıları kabul edecektir.

Dezavantajı: IIS Express'i yönetici olarak çalıştırmanız gerekir.

veya Ngrok'ta ana bilgisayar başlığını yeniden yazabilirsiniz:

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

Bu, başlığı ngrok'ta yeniden yazmanın doğru yoludur. Diğer cevapların hiçbiri işe yaramadı. IIS zaten herhangi bir ana makine adına ayarlanmış, ancak ngrok -host-header = "localhost: 8892" kullanılırken "hostname geçersiz" değerini döndürdü, ancak bu yeniden yazma sürümü hemen çalıştı.
Mart'ta Tyeth

6

İçin httpsbu eserlerin:

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


0

Benim için en basit şey iisexpress-proxy + ngrok kullanmaktı.

İlk iisexpress-proxyolarak npm ile global olarak kurulum yapıyorum

npm install -g iisexpress-proxy

Sonra bununla yerel ana makinemi vekalet ediyorum. Diyelim ki sitem çalışıyor 3003.

iisexpress-proxy 3003 to 12345 nerede 12345Proxy yapmak istediğim yeni http bağlantı noktası .

Sonra üstünde ngrok koşabilirim.

./ngrok.exe http 12345

Sadece çalışıyor! 😃

Ama bence sadece ile çalışıyor http. Şu anda httpstest etmek için kullanmıyorum , ama işe yarıyor olsa bile, genellikle her zaman olduğu gibi çok iş.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.