Como posso executar TODAS as solicitações HTTP através do Charles Web Debugging Proxy - incluindo as da linha de comando?


24

Estou usando o software Charles Web Debugging Proxy para depurar solicitações HTTP. Funciona muito bem com meus navegadores de desktop, Chrome e Firefox e até vê solicitações HTTP que outros programas fazem.

Quando executo Charles e verifico a configuração de rede, acho que entendo como funciona - ele apenas configura um proxy para todas as solicitações HTTP e HTTPS e as atende na porta 8888:

insira a descrição da imagem aqui

No entanto, o item I não consegue descobrir é que eu não vejo quaisquer pedidos que eu iniciar no terminal, tais como wget, curlou o elinksbrowser.

Eu sei que posso especificar o proxy com curl e wget usando 127.0.0.1:8888, mas não entendo se a interface de rede está configurada com um proxy na configuração, por que eu precisaria especificar manualmente o proxy para eles .

Também não consigo fazer com que o BlueCrab (copiadora do site) apareça no Charles - e não vejo uma configuração de proxy para ele - embora eu acredite que esteja usando um wrapper do XWindow ou algo assim (portanto, não é realmente um nativo Aplicativo Cacau / Carbono):

insira a descrição da imagem aqui

Como posso obter todas as solicitações HTTP no meu sistema para executar através do Charles?

Esclarecimento

A minha pergunta é sobre os fundamentos do sistema de por onda e wget não iria usar um proxy quando a interface de rede foi configurado para usar um mais do que perguntar sobre a sintaxe correta para curl, wget, etc.

Respostas:


4

A VPN criaria um novo dispositivo de rede, você poderá vê-lo no ifconfigcomando e, em seguida, rotear toda a rede do sistema para esse dispositivo, poderá ver o routecomando route use .

Mas o Proxy HTTP (neste caso, o Charles) é diferente, basta abrir uma porta, para usá-lo, você deve especificar a configuração do aplicativo para usar essa porta para itens HTTP. e, como resposta de Kevin Reid curl, wgetetc, não lêem as configurações gerais do sistema do OS X.


Se o seu proxy for SOCKS (Charles suporta HTTP e SOCKS), você poderá usar ProxyChains ou tsocks para o aplicativo não suportar configuração de proxy.

por exemplo:

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

Como ter uma depuração da Web "semelhante a VPN"? Existem aplicativos que fazem isso?
Pacerier

@Pacerier Experimente o Wireshark , é uma ferramenta de análise / monitoramento da Internet / rede, na qual você pode ver praticamente todos os tráfegos de rede do seu sistema, incluindo, entre outros, UDP, TCP (inclui HTTP). No entanto, é muito complicado para depuração da Web , mas insira um comando de filtro de uma linha para que apenas as exibições de tráfego HTTP sejam possíveis.
Mengdi Gao

O @Pacerier também considera mitmproxy . Ao executar no modo Proxy transparente , você tem depuração da Web semelhante à VPN. O lado negativo é que é uma ferramenta de linha de comando e a configuração é um pouco complicada.
Mengdi Gao

18

fonte do wget behind proxy (pode ser necessário criar o arquivo rc)

`$ vim ~/.wgetrc`

Adicione a seguinte linha:

http_proxy=http://127.0.0.1:8888

enrolar atrás da fonte de proxy

$ vim ~/.curlrc

Adicione a seguinte linha:

proxy = 127.0.0.1:8888

elinks atrás da fonte de proxy

Encontre seu elinks.confarquivo com:

sudo find / -name elinks.conf

Adicione a seguinte linha:

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

Não tenho certeza sobre BlueCrab


1
> Eu sei que posso especificar o proxy com curl e wget usando 127.0.0.1:8888, mas não entendo se a interface de rede está configurada com um proxy na configuração, por que eu precisaria especificar manualmente o proxy para essas coisas.
Cwd

O título da sua pergunta e o que você estava procurando não correspondem. Vou tentar encontrar essa informação também.
Rebecca Dessonville

1
Eu acho que combina - estou procurando uma maneira de executar TODAS as solicitações através do Charles Debugging Proxy e não preciso definir regras em um programa por programa. Não se preocupe se esta pergunta for obsoleta e ninguém mais puder responder. Voltarei e aceitarei sua resposta. E obrigado por compartilhar a sintaxe de configuração desses utilitários.
Cwd

Depois de ler sua edição, agora vejo onde não entendi sua solicitação original.
Rebecca Dessonville

11

O motivo pelo qual você não obtém o proxy de todas as solicitações HTTP é porque, no nível do sistema operacional , não existe uma "solicitação HTTP"; existem apenas conexões TCP. Entrar em contato com um proxy HTTP significa alterar um pouco a solicitação HTTP, bem como entrar em contato com o servidor proxy em vez do host nomeado na URL, portanto, isso deve ser feito no código que implementa o envio de solicitações HTTP.

curl e wget têm seu próprio código HTTP, que usa seus próprios arquivos de configuração - eles não foram programados para procurar configurações de proxy onde o Mac OS X os mantém, nem usam as bibliotecas HTTP fornecidas com o Mac OS X que usam esses proxy configurações.


6

Se você não quiser tocar em seus arquivos de configuração, usando curl, você pode:

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.