Saya dapat dengan mudah menggunakan Netcat (atau, Socat) untuk menangkap lalu lintas antara browser saya dan port host: spesifik.
Tetapi untuk Linux, apakah ada rekan perintah-baris dari proxy HTTP seperti Squid yang dapat saya gunakan untuk menangkap lalu lintas antara klien HTTP saya (baik browser atau program baris perintah) dan host sewenang-wenang: port?
command-line
proxy
http
squid
Harry
sumber
sumber
Jawaban:
Baik Perl dan Python (dan mungkin juga Ruby) memiliki kit sederhana yang dapat Anda gunakan untuk membuat proxy HTTP sederhana dengan cepat.
Di Perl, gunakan HTTP :: Proxy . Inilah contoh 3-baris dari dokumentasi. Tambahkan filter untuk memfilter, mencatat atau menulis ulang permintaan atau tanggapan; lihat dokumentasi sebagai contoh.
Dalam Python, gunakan SimpleHTTPServer . Berikut ini beberapa contoh kode yang diadaptasi dari effbot . Adaptasi
do_GET
metode (atau lainnya) untuk memfilter, mencatat atau menulis ulang permintaan atau tanggapan.sumber
Ini mungkin bukan solusi terbaik, tetapi jika Anda menggunakan proxy apa pun maka itu akan memiliki spesifik
host:port
sehingga solusi netcat tetap berfungsi, meskipun Anda harus memisahkan meta-data proxy untuk memahami itu.Cara termudah untuk melakukan ini mungkin menggunakan proxy anonimisasi acak apa pun di luar sana dan cukup salurkan semua lalu lintas
netcat
. (Yaitu, atur proxy browser Anda kelocalhost:port
dan kemudian teruskan data ke proxy yang sebenarnya.)Jika Anda ingin memiliki proxy lokal maka proxy SOCKS5 dengan
ssh -D <port> localhost
mungkin merupakan opsi termudah Anda. Jelas, Anda harus memberi tahu browser Anda untuk menggunakan proxy "kaus kaki" daripada proxy "http".Jadi, sesuatu seperti ini (dengan asumsi mesin lokal Anda menerima koneksi ssh masuk):
Secara alami, itu hanya akan berfungsi untuk satu upaya koneksi browser, dan kemudian keluar, dan saya belum mencoba meneruskan data yang dikembalikan ke browser, jadi Anda akan memerlukan
netcat
solusi lengkap Anda .sumber
root
pengguna, dll.ssh -fN -D ...
memulai proxy SOCKS5 padalocalhost
port8000
, tetapi apa fungsinyanc -l ...
? Dan, ke port mana saya harus mengarahkan browser saya ke:8000
atau8080
?nc
perintah menerima semua lalu lintas dari port 8080 dan meneruskannya ke 8000. Saya tidak memberikan penuhnetcat
solusi karena posting Anda menyarankan Anda sudah tahu bagaimana melakukan bagian itu.