TÜM HTTP isteklerini Charles Web Debugging Proxy üzerinden (komut satırı istekleri dahil) nasıl çalıştırabilirim?


24

HTTP isteklerinde hata ayıklamak için Charles Web Hata Ayıklama Proxy yazılımını kullanıyorum. Masaüstü tarayıcılarım, Chrome ve Firefox ile harika çalışıyor ve diğer programların yaptığı HTTP isteklerini bile görüyor.

Charles'ı çalıştırdığımda ve ağ yapılandırmasını kontrol ettiğimde, nasıl çalıştığını anladığımı düşünüyorum - sadece tüm HTTP ve HTTPS istekleri için bir proxy oluşturur ve ardından 8888 numaralı bağlantı noktasında bunları dinler:

görüntü tanımını buraya girin

Ancak çözemiyorum madde ben gibi, Terminalinde başlatmasını herhangi bir istek görmüyorum yani wget, curlya elinkstarayıcısı.

127.0.0.1:8888 kullanarak proxy'yi curl ve wget ile belirleyebildiğimi biliyorum, ancak ağ arayüzünün yapılandırmada proxy ile kurulup kurulmadığını anlamıyorum, neden proxy'leri kendileri için manuel olarak belirlemem gerekiyor? .

Ayrıca, BlueCrab (web sitesi fotokopi makinesi) 'nin Charles'da görünmesini de sağlayamıyorum - ve bunun için bir proxy ayarı göremiyorum - bir XWindow sargısı veya başka bir şey kullandığına inandığım halde Kakao / Karbon uygulaması):

görüntü tanımını buraya girin

Sistemimdeki tüm HTTP isteklerini Charles üzerinden çalıştırmasını nasıl sağlayabilirim?

açıklama

Sorum ağ arayüzü için doğru sözdizimi hakkında sormak yerine bu yüzden daha birini kullanmak ne zaman kurulduğunu bukle ve wget proxy kullanmıyorsa nedenlerine ilişkin sistem temelleri hakkında curl, wgetvb

Yanıtlar:


4

VPN yeni bir ağ cihazı yaratacaktır, ifconfigkomutta görebilir ve ardından tüm sistem ağını o cihaza yönlendirebilir, rota kullanım routekomutunu görebilirsiniz.

Ancak HTTP Proxy (bu durumda, Charles) farklıdır, yalnızca bir bağlantı noktası açar, kullanmak için, bağlantı noktasını HTTP öğelerinde kullanmak üzere uygulama ayarınızı belirtmeniz gerekir. ve Kevin Reid'in cevabı olarak curl, wgetvb. OS X'in sistem çapında ayarlarını okumaz.


Proxy'niz SOCKS ise (Charles hem HTTP hem de SOCKS destekliyorsa ), ProxyChains kullanabilir veya uygulama için proxy ayarını desteklemeyen tsocks kullanabilirsiniz .

Örneğin:

$ proxychains git clone https://github.com/rofl0r/proxychains-ng

"VPN benzeri" bir Web hata ayıklaması nasıl yapılır? Bunu yapan uygulamalar var mı?
Pacerier

@Pacerier Wireshark'ı deneyin , sisteminizin ağ trafiğini hemen hemen görüntüleyebileceğiniz bir İnternet / ağ izleme, analiz aracıdır, UDP, TCP (HTTP içerir) içerir, ancak bunlarla sınırlı değildir. Bununla birlikte, web hata ayıklaması için çok karmaşık bir yöntemdir , ancak tek bir liner filtre komutunu girin, böylece yalnızca HTTP trafik görüntülemesi mümkündür.
Mengdi Gao

@Pacerier da dikkate mitmproxy çalışırken, Şeffaf proxy modunda web hata ayıklama VPN benzeri var. Aşağı tarafı ise bir komut satırı aracı ve konfigürasyon biraz karışık.
Mengdi Gao

18

proxy (wc dosyasını oluşturmanız gerekebilir) arkasında wget kaynak

`$ vim ~/.wgetrc`

Aşağıdaki satırı ekleyin:

http_proxy=http://127.0.0.1:8888

Proxy kaynağının arkasında kıvrılma

$ vim ~/.curlrc

Aşağıdaki satırı ekleyin:

proxy = 127.0.0.1:8888

proxy kaynağının arkasındaki bağlantılar

elinks.confDosyanızı şurada bulun :

sudo find / -name elinks.conf

Aşağıdaki satırı ekleyin:

protocol.http.proxy.host "127.0.0.1:8888"

BlueCrab hakkında emin değilim


1
> 127.0.0.1:8888 kullanarak proxy'yi curl ve wget ile belirleyebildiğimi biliyorum, ancak ağ arayüzünün yapılandırmada proxy'yi neden proxy ile el ile belirlemem gerekeceğini bilmiyorum bu şeyler.
cwd

Soru başlığınız ve aradığınız şey eşleşmiyor. Yine de bu bilgiyi bulmaya çalışacağım.
Rebecca Dessonville

1
Bence eşleşmiyor - TÜM istekleri Charles Debugging Proxy üzerinden yürütmenin bir yolunu arıyorum ve program temelinde program temelinde kurallar koymak zorunda kalmıyorum. Bu soru batarsa ​​ve başka kimse cevap veremezse endişelenmeyin, geri geleceğim ve cevabınızı kabul edeceğim. Ve bu yardımcı programların config sözdizimini paylaştığınız için teşekkür ederiz.
cwd

Düzenlemenizi okuduktan sonra, şimdi orijinal isteğinizi nerede yanlış anladığımı görüyorum.
Rebecca Dessonville,

11

Sebebi neden de çünkü sadece tüm HTTP isteklerinin proxy alamadım olan işletim sistemi düzeyinde bir "HTTP isteği" diye bir şey yoktur; Sadece TCP bağlantısı var. Bir HTTP yetkili sunucusuyla iletişim kurmak, HTTP isteğini hafifçe değiştirmek ve URL'de belirtilen ana bilgisayar yerine proxy sunucusuyla iletişim kurmak anlamına gelir; bu nedenle, HTTP isteklerini gönderen kodda yapılması gerekir.

curl ve wget, kendi yapılandırma dosyalarını kullanan kendi HTTP kodlarına sahiptir - Mac OS X'in sakladıkları proxy ayarlarını aramak için programlanmamışlar ve Mac OS X ile sağlanan HTTP kütüphanelerini de kullanmıyorlar. ayarlar.


6

Konfigürasyon dosyalarınıza dokunmak istemiyorsanız, kıvrılma kullanarak şunları yapabilirsiniz:

curl http://example.com --proxy 127.0.0.1:8888

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.