Làm cách nào tôi có thể chạy TẤT CẢ các yêu cầu HTTP thông qua Proxy gỡ lỗi Charles Web - bao gồm cả các dòng lệnh?


24

Tôi đang sử dụng phần mềm Proxy gỡ lỗi Charles Web để gỡ lỗi các yêu cầu HTTP. Nó hoạt động rất tốt với các trình duyệt máy tính để bàn của tôi, Chrome và Firefox và thậm chí nó còn thấy các yêu cầu HTTP mà các chương trình khác thực hiện.

Khi tôi chạy Charles và kiểm tra cấu hình mạng, tôi nghĩ tôi hiểu cách thức hoạt động của nó - nó chỉ thiết lập proxy cho tất cả các yêu cầu HTTP và HTTPS và sau đó lắng nghe những điều này trên cổng 8888:

nhập mô tả hình ảnh ở đây

Tuy nhiên mục Tôi không thể hình dung ra là tôi không thấy bất kỳ yêu cầu tôi thực hiện tại nhà ga, chẳng hạn như wget, curlhoặc elinkstrình duyệt.

Tôi biết rằng tôi có thể chỉ định proxy bằng curl và wget bằng cách sử dụng 127.0.0.1:8888, nhưng tôi không hiểu nếu giao diện mạng được thiết lập với proxy trong cấu hình tại sao tôi cần chỉ định proxy theo cách thủ công cho chúng .

Ngoài ra, tôi dường như không thể để BlueCrab (máy photocopy trang web) xuất hiện ở Charles - và tôi không thấy cài đặt proxy cho nó - mặc dù tôi tin rằng nó đang sử dụng trình bao bọc XWindow hoặc một cái gì đó (vì vậy nó không thực sự là bản địa Ứng dụng ca cao / Carbon):

nhập mô tả hình ảnh ở đây

Làm cách nào tôi có thể nhận được tất cả các yêu cầu HTTP trên hệ thống của mình để chạy qua Charles?

Làm rõ

Câu hỏi của tôi là về nguyên tắc cơ bản hệ thống về việc tại sao curl và wget sẽ không sử dụng một proxy khi giao diện mạng được thành lập để sử dụng một trong nhiều hơn so với hỏi về cú pháp chính xác cho curl, wgetvv

Câu trả lời:


4

VPN sẽ tạo ra một thiết bị mạng mới, bạn có thể thấy nó trong ifconfiglệnh và sau đó định tuyến tất cả mạng hệ thống đến thiết bị đó, bạn có thể thấy routelệnh sử dụng tuyến .

Nhưng HTTP Proxy (trong trường hợp này là Charles) thì khác, nó chỉ mở một cổng, để sử dụng nó, bạn phải chỉ định cài đặt ứng dụng của mình để sử dụng cổng đó cho nội dung HTTP. và như câu trả lời của Kevin Reid curl, wgetv.v. đừng đọc cài đặt toàn hệ thống của OS X.


Nếu proxy của bạn là SOCKS (Charles hỗ trợ cả HTTP và SOCKS), bạn có thể sử dụng ProxyChains hoặc tsocks cho ứng dụng không hỗ trợ cài đặt proxy.

ví dụ:

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

Làm thế nào để có một gỡ lỗi Web "giống như VPN"? Có ứng dụng làm điều này?
Pacerier

@Pacerier Hãy thử Wireshark , đây là công cụ phân tích, giám sát Internet / mạng, trong đó bạn có thể xem khá nhiều tất cả các giao dịch mạng của hệ thống của mình, bao gồm nhưng không giới hạn ở UDP, TCP (bao gồm HTTP). Tuy nhiên, quá phức tạp cho việc gỡ lỗi web , nhưng hãy nhập lệnh bộ lọc một lớp để chỉ hiển thị lưu lượng HTTP.
Mạnhdi Gao

@Pacerier cũng xem xét mitmproxy , khi chạy ở chế độ Proxy trong suốt , bạn đã gỡ lỗi web giống như VPN. Mặt trái của nó là một công cụ dòng lệnh và cấu hình hơi phức tạp.
Mạnhdi Gao

18

wget đằng sau proxy (bạn có thể phải tạo tệp RC) nguồn

`$ vim ~/.wgetrc`

Thêm dòng sau:

http_proxy=http://127.0.0.1:8888

cuộn tròn phía sau nguồn proxy

$ vim ~/.curlrc

Thêm dòng sau:

proxy = 127.0.0.1:8888

elinks đằng sau nguồn proxy

Tìm elinks.conftệp của bạn với:

sudo find / -name elinks.conf

Thêm dòng sau:

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

Không chắc chắn về BlueCrab


1
> Tôi biết rằng tôi có thể chỉ định proxy bằng curl và wget bằng cách sử dụng 127.0.0.1:8888, nhưng tôi không hiểu nếu giao diện mạng được thiết lập với proxy trong cấu hình tại sao tôi cần chỉ định proxy theo cách thủ công những thứ này.
cwd

Tiêu đề câu hỏi của bạn và những gì bạn đang tìm kiếm không phù hợp. Tôi sẽ cố gắng để tìm thông tin đó là tốt, mặc dù.
Rebecca Dessonville

1
Tôi nghĩ rằng nó phù hợp - Tôi đang tìm cách để chạy TẤT CẢ các yêu cầu thông qua Charles Debugging Proxy và không phải thiết lập các quy tắc trên chương trình theo chương trình. Đừng lo lắng nếu câu hỏi này trở nên cũ kỹ và không ai khác có thể trả lời tôi sẽ quay lại và chấp nhận câu trả lời của bạn. Và cảm ơn bạn đã chia sẻ cú pháp cấu hình cho các tiện ích đó.
cwd

Sau khi đọc bản chỉnh sửa của bạn, bây giờ tôi thấy nơi tôi hiểu nhầm yêu cầu ban đầu của bạn.
Rebecca Dessonville

11

Lý do tại sao bạn không nhận được ủy quyền của tất cả các yêu cầu HTTP là vì ở cấp độ hệ điều hành , không có thứ gọi là "yêu cầu HTTP"; chỉ có kết nối TCP. Liên hệ với proxy HTTP có nghĩa là thay đổi một chút yêu cầu HTTP cũng như liên hệ với máy chủ proxy thay vì máy chủ có tên trong URL, do đó, nó phải được thực hiện trong mã thực hiện gửi yêu cầu HTTP.

curl và wget có mã HTTP riêng, sử dụng các tệp cấu hình của riêng họ - họ chưa được lập trình để tìm các cài đặt proxy trong đó Mac OS X giữ chúng, cũng không sử dụng các thư viện HTTP được cung cấp với Mac OS X sử dụng proxy đó cài đặt.


6

Nếu bạn không muốn chạm vào các tệp cấu hình của mình, sử dụng curl bạn có thể làm:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.