Jak sprawić, by Fiddler przestał ignorować ruch do lokalnego hosta?

143

Podczas używania programu Fiddler do monitorowania żądań i odpowiedzi HTTP w programie Internet Explorer ignoruje cały ruch kierowany do http: // localhost .

NotMyself
źródło
Myślę, że to tylko problem w IE <9, prawda?
Josh Mouch
Hum ... mój ruch localhost nie jest domyślnie ignorowany i testuję go również z IE 11.
m3nda
Musiałem też przełączyć się z IIS na IIS Express
niico
Fiddler był kiedyś tym wspaniałym narzędziem, ale teraz to tylko koszmar konfiguracji.
The Muffin Man

Odpowiedzi:

100

Aby Fiddler przechwytywał ruch podczas debugowania na hoście lokalnym, po naciśnięciu klawisza F5 w celu rozpoczęcia degugowania zmień adres, tak aby host lokalny miał znak „.” po tym.

Na przykład, zaczynasz debugowanie i masz następujący adres URL w pasku adresu:

http: // localhost: 49573 / Default.aspx

Zmień to na:

http://localhost.:49573/Default.aspx

Wciśnij Enter, a Fidder zacznie zbierać ruch.

NotMyself
źródło
3
Słodycz. Tak proste i skuteczne.
Bradley Mountford,
12
to działa dla cassini ... nie i jest, którego musisz użyć, jeśli łączysz się z witryną lub usługą na SSL ...
user20358
Miły! Działało doskonale - prościej już się nie da.
narayan
1
Nie działało dla mnie używanie cygwin i curl z następującym poleceniem: curl -X POST -H "application / json" -d '{"name": {"firstName": "eli", "lastName": "kool" }} 'localhost.:61444/Inbound/Catch
Ilia Koulikov
15
Interfejs WebAPI nie działa z hostem lokalnym. jest napisane Złe żądanie - Nieprawidłowa
nazwa
90

Witryna Fiddlera odnosi się bezpośrednio do tego pytania .

Istnieje kilka sugerowanych obejść, ale najprostszym jest po prostu użycie nazwy komputera zamiast „localhost” lub „127.0.0.1”:

http://machinename/mytestpage.aspx
Matt Dillard
źródło
Nie jestem pewien, dlaczego witryna Fiddlera nie sugeruje sugestii „dodawania kropki po localhost”, która moim zdaniem jest najlepsza. Jest to szczególnie prawdziwe w niektórych środowiskach serwerowych, w których pracuję, gdzie localhost jest jedyną rzeczą, której mogę używać (ze względu na kontrolki ActiveX, uprawnienia i inne).
Josh Mouch
3
@JoshMouch Ponieważ niektóre serwery WWW odrzucają localhost.jako nieprawidłową nazwę hosta.
Aaron Jensen
3
localhost.i machinenamejest odrzucony w moim przypadku.
The Muffin Man
2
Jak wspomniano, „localhost”. nie działa na wielu interfejsach API (lub 127.0.0.1). Użyłem modyfikacji „ localhost.fiddler ”, która działała idealnie.
Vman
43

Prawidłowa odpowiedź jest taka, że ​​Fiddler nie ignoruje ruchu skierowanego do lokalnego hosta, ale raczej to, że większość aplikacji jest zakodowana na stałe w celu ominięcia serwerów proxy (z których Fiddler jest jednym) dla żądań skierowanych do hosta lokalnego.

Stąd różne dostępne obejścia: http://fiddler2.com/documentation/Configure-Fiddler/Tasks/MonitorLocalTraffic

EricLaw
źródło
1
od kwietnia 2013: fiddler2.com/documentation/Configure-Fiddler/Tasks/... ps dzięki za niesamowite narzędzie Eric.
Pete
Dodanie kropki do końca lokalnego hosta to najlepsza sztuczka, a strona skrzypka o tym nie wspomina.
Josh Mouch
Wypróbowałem inne różne rozwiązania na tej stronie: Dodanie kropki, zmiana nazwy hosta z „localhost” na nazwę mojego komputera. Żadne nie zadziałało. Zastąpienie „localhost” słowem „ipv4.fiddler”, o którym mowa w dokumencie obejścia, zadziałało.
Simon Tewsi
W sytuacjach, gdy adres jest zakodowany w plikach projektu, które znajdują się w bibliotece kodu źródłowego, są dystrybuowane do wszystkich programistów (myślę, że Mercurial / Git) w zespole lub że wszyscy deweloperzy nie mają skrzypka, te rozwiązania są nierealne i powodują więcej problemy niż rozwiązują. Potrzebny jest sposób, aby skrzypek działał poza projektem i dlatego nie miał żadnego wpływu na projekt lub jego konfigurację.
user2960136
39

Fiddler v4.5.1.0 pozwoli ci zamienić „localhost” na „localhost.fiddler” i przedstawić localhost jako nazwę hosta serwera odbierającego działającego na twojej maszynie.

Pozwala to uniknąć błędów „host nierozpoznany” podczas łączenia się z usługami WCF za pomocą wbudowanego serwera sieci Web, z którego korzysta program Visual Studio.

tj. Zamiast http://localhost:51900/service.wcfmożesz użyćhttp://localhost.fiddler:51900/service.wcf

Jonathan
źródło
2
DZIAŁA IDEALNIE! .. Ze względu na konfigurację sieci w mojej pracy żadna z pozostałych sugestii nie zadziałała. To jedyna sztuczka, która mi pomogła.
Zorthgo
@Zorthgo Dobrze słyszeć. :)
Jonathan
3

Używając Fiddlera w wersji 4.6 i domyślnej konfiguracji, nie można było zobaczyć żadnego ruchu z „localhost”. Próbowałem tutaj wielu sugestii, ale nic nie działało.

Włączono Pomoc -> Rozwiązywanie problemów i można było zobaczyć o wiele więcej żądań. Sesje zostały oznaczone przekreśloną czcionką, a podany powód brzmiał: „Ukryte ze względu na pasek stanu> Filtr procesu”.

Znalazłem tę odpowiedź od Erica Lawrence'a do osoby mającej ten sam problem http://www.telerik.com/forums/fiddler-not-capturing-ios-traffic-even-ho-echo-service-works

w zasadzie co należy zrobić: Spójrz na pasek stanu u dołu okna Fiddlera, drugi mały „zasobnik” na tym pasku prawdopodobnie mówi coś w rodzaju „Przeglądarki internetowe”. Kliknij to, a następnie zmień na „Wszystkie procesy”.

Pasek stanu Fiddler

Ryga
źródło
2

upewnij się, że zaznaczono opcję Monitoruj wszystkie połączenia. to nie działa dla mnie, może port jest inny, potrzebuję zobaczyć httprequest do mojej witryny z Gmaila moja witryna jest na win xp i iis5 (moja własna maszyna)

user88064
źródło
2

Aby Fiddler mógł przechwytywać ruch z lokalnego hosta w lokalnych usługach IIS, istnieją 3 kroki (zadziałało na moim komputerze):

  1. Kliknij Narzędzia> Opcje Fiddlera. Upewnij się, że zaznaczona jest opcja Zezwalaj klientom zdalnym na łączenie się. Zamknij Fiddlera.

wprowadź opis obrazu tutaj

  1. Utwórz nowy plik DWORD o nazwie ReverseProxyForPort wewnątrz KEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Fiddler2. Ustaw DWORD na port 80 (wybierz tutaj dziesiętny). Uruchom ponownie Fiddlera.

wprowadź opis obrazu tutaj

  1. Dodaj port 8888 do adresów zdefiniowanych w kliencie. Na przykład localhost: 8888 / MyService / WebAPI / v1 /
ozanmut
źródło
Tak, te ustawienia powodują, że skrzypek działa jako zwrotne proxy, tak, że przekazuje przychodzące żądania do innego portu. W tym przykładzie przekazuje żądania skierowane do portu 8888 do 80.
ozanmut
Najbardziej skomplikowane było dla mnie całkowite zignorowanie localhost i wysłanie całego pozostałego ruchu do przetworzenia przez skrzypka. Musisz ominąć localhost, ALE także wykluczyć go za pomocą swoich funkcji. (możesz spróbować z regułą hide 304 w celach testowych). Więc skończyłem wykluczając to w następujący sposób if ((m_EnableProxy) && !(oSession.host =="127.0.0.1" || oSession.host =="localhost" || oSession.host =="ipv4.fiddler")) { oSession["X-OverrideGateway"] = "socks=127.0.0.1:8080"; oSession["ui-backcolor"] = "#EFEF9F"; }. Ta funkcja powinna być włączonaBeforeRequest.
m3nda
1

Zamiast tego użyj lokalnego adresu IP (nie 127.0.0.1), na przykład 192.16.0.88 itd. Przejdź do cmd.exe i wpisz ipconfig, a zobaczysz go.

tekst alternatywny

kod Schrodingera
źródło
4
Właściwie tak nie jest.
Nathan C. Tresch
To nie działa. Wygląda na to, że nie możesz połączyć się lokalnie z własnym adresem IP
zeocrash
0

Windows XP:

Pamiętaj, aby kliknąć przycisk ustawień dla każdego elementu w polu listy „Ustawienia połączeń telefonicznych i wirtualnej sieci prywatnej” na karcie „Połączenia” apletu panelu sterowania „Opcje internetowe”.

Zauważyłem, że Fiddler przestał używać konfiguracji „Ustawienia sieci LAN” po połączeniu się z moją siecią VPN. Nawet jeśli ruch nie przechodził przez VPN.

Użytkownik1
źródło
0
  • Wpisz ipconfig w wierszu polecenia.
  • Otrzymasz adres IPv4
  • Zastąp localhost swoim adresem IPv4 w adresie URL po wejściu do usługi.

Ruch pojawi się w Fiddlerze pod adresem IP twojego komputera.

Christian Findlay
źródło
-2

Przejdź do menu Narzędzia, Opcje skrzynek ..., wybierz kartę Połączenia, a następnie upewnij się, że zaznaczono opcję Monitoruj wszystkie połączenia. Jak powiedział Antony Scott, ale upewnij się, że okienko „Sesje internetowe” jest ustawione na „Przechwytywanie” i [„Przeglądarki internetowe” LUB „Wszystkie procesy”]. Wygląda na to, że wartością domyślną jest „Non-Browser”.

Marcus
źródło