Command-Line
是否有任何命令行、通用 HTTP 代理(如 Squid)?
我可以輕鬆地使用 Netcat(或 Socat)來擷取我的瀏覽器和特定主機:埠之間的流量。
但是對於 Linux,是否存在類似 Squid 的 HTTP 代理的命令行對應項,我可以使用它來擷取我的 HTTP 客戶端(瀏覽器或命令行程序)和任意主機:埠之間的流量?
Perl 和 Python(可能還有 Ruby)都有簡單的工具包,可以用來快速建構簡單的 HTTP 代理。
在 Perl 中,使用HTTP::Proxy。這是文件中的 3 行範例。添加過濾器以過濾、記錄或重寫請求或響應;有關範例,請參閱文件。
use HTTP::Proxy; my $proxy = HTTP::Proxy->new( port => 3128 ); $proxy->start;
在 Python 中,使用SimpleHTTPServer。這是一些從effbot輕微改編的範常式式碼。調整
do_GET
方法(或其他方法)以過濾、記錄或重寫請求或響應。import SocketServer import SimpleHTTPServer import urllib class Proxy(SimpleHTTPServer.SimpleHTTPRequestHandler): def do_GET(self): self.copyfile(urllib.urlopen(self.path), self.wfile) httpd = SocketServer.ForkingTCPServer(('', 3128), Proxy) httpd.serve_forever()