Charles Web Debugging Proxy를 통해 모든 HTTP 요청을 실행하려면 어떻게해야합니까?


24

Charles Web Debugging Proxy 소프트웨어를 사용하여 HTTP 요청을 디버깅하고 있습니다. 내 데스크톱 브라우저, Chrome 및 Firefox에서 잘 작동하며 다른 프로그램의 HTTP 요청도 볼 수 있습니다.

Charles를 실행하고 네트워크 구성을 확인하면 작동 방식을 이해한다고 생각합니다. 모든 HTTP 및 HTTPS 요청에 대한 프록시를 설정 한 다음 포트 8888에서이 설정을 수신합니다.

여기에 이미지 설명을 입력하십시오

그러나 내가 알아낼 수 없습니다 항목이 나는 등, 터미널에서 시작하는 것이 모든 요청 볼 수 없다는 것입니다 wget, curl또는 elinks브라우저를.

127.0.0.1:8888을 사용하여 curl 및 wget으로 프록시를 지정할 수 있다는 것을 알고 있지만 네트워크 인터페이스가 프록시를 사용하여 프록시를 수동으로 지정 해야하는 이유는 구성에서 프록시로 설정되어 있는지 이해할 수 없습니다. .

또한 Charles에 BlueCrab (웹 사이트 복사기)이 표시되지 않는 것 같습니다 .XWindow 래퍼 또는 무언가를 사용하고 있다고 생각하더라도 프록시 설정이 표시되지 않습니다 (그래서 실제로 네이티브가 아닙니다) 코코아 / 탄소 앱) :

여기에 이미지 설명을 입력하십시오

Charles가 시스템에서 실행하는 모든 HTTP 요청을 얻으려면 어떻게해야합니까?

설명

내 질문은 네트워크 인터페이스에 대한 올바른 구문에 대해 물어보다 너무 많은 일을 사용하도록 설정되었을 때 컬과 wget과 프록시를 사용하지 왜의 시스템의 기본에 관한 curl, wget

답변:


4

VPN은 새 네트워크 장치를 생성하고 ifconfig명령 에서 볼 수 있으며 모든 시스템 네트워크를 해당 장치로 라우팅하면 route use route명령을 볼 수 있습니다 .

그러나 HTTP 프록시 (이 경우 Charles)는 다르므로 포트를 열면 포트를 사용하고 HTTP 설정에 해당 포트를 사용하도록 응용 프로그램 설정을 지정해야합니다. 케빈 리드의 대답은, curl, wget등 OS X의 시스템 전체 설정을 읽을 수 없습니다.


프록시가 SOCKS 인 경우 (Charles HTTP와 SOCKS를 모두 지원함 ) 응용 프로그램이 프록시 설정을 지원하지 않는 ProxyChain 또는 tsock 을 사용할 수 있습니다 .

예 :

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

그렇다면 "VPN과 같은"웹 디버깅을하는 방법은 무엇입니까? 이를 수행하는 앱이 있습니까?
Pacerier

@Pacerier 인터넷, 네트워크 모니터링, 분석 도구 인 Wireshark 는 UDP, TCP (HTTP 포함) 등 시스템의 거의 모든 네트워크 트래픽을 볼 수있는 분석 도구입니다. 그러나 웹 디버깅 에는 너무 복잡 하지만 한 줄짜리 필터 명령을 입력하면 HTTP 트래픽 표시 만 가능합니다.
Mengdi Gao

@Pacerier도 고려 mitmproxy을 실행하는 경우, 투명 프록시 모드, 당신은 웹 디버깅 VPN-처럼되었다. 단점은 명령 줄 도구이며 구성이 약간 복잡하다는 것입니다.
Mengdi Gao

18

프록시 뒤에서 wrc (rc 파일을 만들어야 할 수도 있음) 소스

`$ vim ~/.wgetrc`

다음 줄을 추가하십시오.

http_proxy=http://127.0.0.1:8888

프록시 소스 뒤에 컬

$ vim ~/.curlrc

다음 줄을 추가하십시오.

proxy = 127.0.0.1:8888

프록시 소스 뒤에 elinks

다음을 사용하여 elinks.conf파일을 찾으십시오 .

sudo find / -name elinks.conf

다음 줄을 추가하십시오.

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

BlueCrab에 대해 확실하지 않음


1
> 127.0.0.1:8888을 사용하여 curl 및 wget으로 프록시를 지정할 수 있다는 것을 알고 있지만 네트워크 인터페이스가 구성에서 프록시로 설정되어 있는지에 대한 프록시를 수동으로 지정 해야하는 이유를 이해할 수 없습니다. 이런 일.
cwd

질문 제목과 찾고있는 내용이 일치하지 않습니다. 그래도 그 정보를 찾으려고 노력할 것입니다.
Rebecca Dessonville

1
찰스 디버깅 프록시를 통해 모든 요청을 실행하고 프로그램별로 규칙을 설정할 필요가없는 방법을 찾고 있습니다. 이 질문이 오래 되어도 아무도 대답 할 수 없다고 걱정하지 마십시오. 다시 돌아와 답변을 수락하겠습니다. 해당 유틸리티의 구성 구문을 공유해 주셔서 감사합니다.
cwd

편집 내용을 읽은 후 원래 요청을 어디에서 오해했는지 알 수 있습니다.
Rebecca Dessonville

11

그 이유 이유를 상기 때문에 그냥 모든 HTTP 요청의 프록시되지 않습니다는 운영 체제 수준은 "HTTP 요청"같은 것은 존재하지 않는다 TCP 연결 만 있습니다. HTTP 프록시에 연결한다는 것은 HTTP 요청을 약간 변경하고 URL에 이름이 지정된 호스트 대신 프록시 서버에 연결하는 것을 의미하므로 HTTP 요청 전송을 구현하는 코드에서 수행해야합니다.

curl 및 wget에는 고유 한 구성 파일을 사용하는 고유 한 HTTP 코드가 있습니다. Mac OS X에서이를 유지하는 프록시 설정을 찾도록 프로그래밍되지 않았으며 해당 프록시를 사용하는 Mac OS X와 ​​함께 제공된 HTTP 라이브러리를 사용하지도 않습니다 설정.


6

curl을 사용하여 구성 파일을 만지지 않으려면 다음을 수행하십시오.

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.