有一个很棒的适用于 Windows 的程序(URL Snooper:http://www.donationcoder.com/Software/Mouser/urlsnooper/index.html) 可让您查看机器上正在请求的所有 URL。
Linux 中是否存在这样的程序(最好是命令行)
答案1
URL Snooper 似乎不仅适用于机器上正在请求的 URL,也包括隐藏在某些页面 HTML 源代码中的 URL,这些 URL 不一定会被请求。对于后者,另请参阅“如何从文件服务器下载文件列表?“超级用户”。或者,在 Firefox 中,查看菜单“工具”»“页面信息”»“媒体”,或使用类似视频下载助手或者拔以下内容适用于查看所有实际请求的 URL。
命令行ngrep
可以做到这一点,但提供的细节可能比你想要的要多得多。
例如:它不会简单地向您显示在浏览器位置栏中输入的 URL,而是整个 HTTP 请求。(因此:浏览器在实际发出请求之前解析的 IP 地址,然后浏览器向该 IP 地址发送 HTTP 请求。)并且:它还会为结果页面中使用的每个图像等显示此信息。
您可能需要安装ngrep
,就像在 Ubuntu 的默认安装中一样:
sudo apt-get 安装 ngrep
捕获对端口 80 的所有 HTTP GET 请求:
sudo ngrep -W byline -qilw'获取'tcp dst 端口 80
尽管如此,这仍会向您显示整个请求。(如果您是超级用户,请自己尝试!)要进一步限制该输出以仅显示带有->
、get
或 的行host
:
sudo ngrep -W byline -qilw'获取'tcp dst 端口 80\ | grep -i “ -> \|获取\|主机”
或者,捕获对端口 80 的所有请求,但忽略那些Referer
设置了标头的请求(如在请求嵌入图像等时设置,但还在点击网页中的链接时设置,因此仅有的显示直接输入到浏览器位置栏中的请求、在新窗口中打开的请求或从书签或电子邮件中打开的请求):
sudo ngrep -W byline -qilwv'referer'tcp dst 端口 80\ | grep -i “ -> \|获取\|主机”
还有嗅探工具,例如Wireshark有命令行选项。此外,更基本的是,tcpdump
安装在大多数 Linux 发行版上:
sudo tcpdump -Alfq -s 1024 \ ‘tcp dst 端口 80 和 ip[2:2] > 40 和 tcp[tcpflags] & tcp-push != 0’ \ | grep -i “ > \|获取\|主机”
答案2
答案3
您可以使用 HTTP 代理,例如私有网络,但您必须配置浏览器才能使用它 - 它不会监听网络流量。它会记录访问的 URL,您可以使用文本编辑器查看。
答案4
- 按照 navilon 的建议运行一个记录请求的代理。如果您使用透明代理,则无需在客户端进行任何配置。
- 在网关上运行嗅探器。