ฉันจะเรียกใช้คำขอ HTTP ทั้งหมดผ่านทาง Charles Web Debugging Proxy ได้อย่างไรรวมถึงบรรทัดรับคำสั่ง


24

ฉันใช้ซอฟต์แวร์ Charles Web Debugging Proxy เพื่อดีบักคำขอ HTTP มันใช้งานได้ดีกับเบราว์เซอร์เดสก์ท็อปของฉัน Chrome และ Firefox และยังเห็นคำขอ HTTP ที่โปรแกรมอื่นทำ

เมื่อฉันเรียกใช้ Charles และตรวจสอบการกำหนดค่าเครือข่ายฉันคิดว่าฉันเข้าใจว่ามันทำงานอย่างไร - เพียงตั้งค่าพร็อกซีสำหรับคำขอ HTTP และ HTTPS ทั้งหมดจากนั้นรับฟังสิ่งเหล่านี้ที่พอร์ต 8888:

ป้อนคำอธิบายรูปภาพที่นี่

แต่รายการที่ผมไม่สามารถคิดออกคือว่าผมไม่เห็นการร้องขอใด ๆ ที่ฉันเริ่มต้นที่เทอร์มิเช่นwget, curlหรือelinksเบราว์เซอร์

ฉันรู้ว่าฉันสามารถระบุพร็อกซีด้วย curl และ wget ได้โดยใช้ 127.0.0.1:8888 แต่ฉันไม่เข้าใจว่าเน็ตเวิร์กอินเตอร์เฟสถูกตั้งค่าด้วยพร็อกซีในการกำหนดค่าทำไมฉันต้องระบุพร็อกซีสำหรับพวกเขาด้วยตนเอง .

นอกจากนี้ฉันดูเหมือนจะไม่ได้รับ BlueCrab (เว็บไซต์เครื่องถ่ายเอกสาร) เพื่อแสดงใน Charles อย่างใดอย่างหนึ่ง - และฉันไม่เห็นการตั้งค่าพร็อกซีสำหรับมัน - แม้ว่าฉันเชื่อว่ามันใช้ XWindow wrapper หรืออะไรบางอย่าง แอพ Cocoa / Carbon):

ป้อนคำอธิบายรูปภาพที่นี่

ฉันจะรับคำขอ HTTP ทั้งหมดในระบบเพื่อให้ทำงานผ่าน Charles ได้อย่างไร

การอธิบาย

คำถามของฉันเป็นเรื่องเกี่ยวกับปัจจัยพื้นฐานของระบบทำไมขดและ wget จะไม่ใช้พร็อกซี่เมื่อเชื่อมต่อเครือข่ายที่ถูกสร้างขึ้นมาเพื่อใช้หนึ่งมากไปกว่าถามเกี่ยวกับไวยากรณ์ที่ถูกต้องสำหรับcurl, wgetฯลฯ

คำตอบ:


4

VPN จะสร้างอุปกรณ์เครือข่ายใหม่คุณสามารถดูได้ในifconfigคำสั่งแล้วกำหนดเส้นทางเครือข่ายระบบทั้งหมดไปยังอุปกรณ์นั้นคุณสามารถดูrouteคำสั่งการใช้เส้นทาง

แต่ HTTP Proxy (ในกรณีนี้คือ Charles) นั้นแตกต่างกันเพียงแค่เปิดพอร์ตเพื่อใช้งานคุณจะต้องระบุการตั้งค่าแอปพลิเคชันของคุณเพื่อใช้พอร์ตนั้นสำหรับเนื้อหา HTTP และเป็นคำตอบที่เควินเรดcurl, wgetฯลฯ ไม่ได้อ่านการตั้งค่ากว้างระบบ OS X ของ


หากพร็อกซีของคุณคือ SOCKS (Charles รองรับทั้ง HTTP และ SOCKS) คุณสามารถใช้ProxyChainsหรือtsocksสำหรับแอปพลิเคชันไม่สนับสนุนการตั้งค่าพร็อกซี

เช่น:

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

จะมีการดีบักเว็บ "เหมือน VPN" ได้อย่างไร? มีแอพที่ทำสิ่งนี้หรือไม่?
Pacerier

@Pacerier ลองใช้Wiresharkซึ่งเป็นเครื่องมือตรวจสอบอินเทอร์เน็ต / เครือข่ายวิเคราะห์เครื่องมือซึ่งคุณสามารถดูการจราจรเครือข่ายทั้งหมดของระบบของคุณได้ซึ่งรวมถึง แต่ไม่ จำกัด เพียง UDP, TCP (รวม HTTP) อย่างไรก็ตามมันซับซ้อนเกินไปสำหรับการแก้ไขจุดบกพร่องบนเว็บแต่ป้อนคำสั่งตัวกรองแบบหนึ่งซับเพื่อให้สามารถแสดงการรับส่งข้อมูล HTTP ได้เท่านั้น
Mengdi Gao

@Pacerier พิจารณาmitmproxyเมื่อทำงานในโหมดTransparent Proxyคุณจะได้รับการดีบักเหมือนเว็บ VPN ข้อเสียคือเครื่องมือบรรทัดคำสั่งและการกำหนดค่ามีความซับซ้อนเล็กน้อย
Mengdi Gao

18

wget พร็อกซี (คุณอาจต้องสร้างแฟ้ม 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
> ฉันรู้ว่าฉันสามารถระบุพร็อกซีด้วย curl และ wget ได้โดยใช้ 127.0.0.1:8888 แต่ฉันไม่เข้าใจว่าเน็ตเวิร์กอินเตอร์เฟสถูกตั้งค่าด้วยพร็อกซีในการกำหนดค่าทำไมฉันต้องระบุพร็อกซีด้วยตนเอง สิ่งเหล่านี้.
cwd

ชื่อคำถามของคุณและสิ่งที่คุณมองหาไม่ตรงกัน ฉันจะพยายามหาข้อมูลนั้นด้วย
Rebecca Dessonville

1
ฉันคิดว่ามันตรงกัน - ฉันกำลังมองหาวิธีที่จะเรียกใช้การร้องขอทั้งหมดผ่านทาง Charles Debugging Proxy และไม่จำเป็นต้องตั้งค่ากฎในโปรแกรมตามพื้นฐานของโปรแกรม ไม่ต้องกังวลหากคำถามนี้ค้างและไม่มีใครตอบได้ฉันจะกลับมาและรับคำตอบของคุณ และขอบคุณสำหรับการแบ่งปันไวยากรณ์การตั้งค่าสำหรับยูทิลิตี้เหล่านั้น
cwd

หลังจากอ่านการแก้ไขของคุณตอนนี้ฉันเห็นที่ฉันเข้าใจผิดคำขอเดิมของคุณ
Rebecca Dessonville

11

เหตุผลที่ว่าทำไมคุณไม่เพียงได้รับการพร็อกซีของการร้องขอ HTTP ทั้งหมดเป็นเพราะที่ระบบปฏิบัติการระดับไม่มีสิ่งดังกล่าวเป็น "HTTP คำขอ"; มีการเชื่อมต่อ TCP เท่านั้น การติดต่อพร็อกซี HTTP หมายถึงการเปลี่ยนแปลงการร้องขอ HTTP เล็กน้อยเช่นเดียวกับการติดต่อพร็อกซีเซิร์ฟเวอร์แทนโฮสต์ที่มีชื่อใน URL ดังนั้นจึงต้องทำในรหัสที่ใช้ส่งคำขอ HTTP

curl และ wget มีรหัส HTTP ของตัวเองซึ่งใช้ไฟล์กำหนดค่าของตัวเอง - พวกเขาไม่ได้รับการตั้งโปรแกรมให้ค้นหาการตั้งค่าพร็อกซีที่ Mac OS X เก็บไว้และไม่ได้ใช้ไลบรารี HTTP ที่มาพร้อมกับ Mac OS X การตั้งค่า


6

หากคุณไม่ต้องการสัมผัสไฟล์กำหนดค่าการใช้ curl คุณสามารถทำได้:

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.