如何在 Linux 中使用 Wget 和 Tor Bundle

如何在 Linux 中使用 Wget 和 Tor Bundle

我是 Linux Mint (Lisa) 和 Tor Bundle 用户,正在尝试通过 Tor 使用 wget。按照说明操作后,我发现这里,运行 wget 时我得到的只是一个输出文件,显示“514 需要身份验证”。

以下是我所做的:我下载了适用于 Linux 的最新版本的 Tor Bundle(版本 2.2.35-9)并解压。我运行了 ./start-tor-browser。然后在 Vidalia 中,我进入设置 -> 高级,取消选中“自动配置控制端口”。(后来我也尝试将“身份验证”更改为“无”,但仍然不起作用。)IP 地址设置为 localhost,端口为 9051。

我从终端说道:

export http_proxy="http://127.0.0.1:9051"
wget -proxy=on www.whatismyip.com

这给了我一个输出文件,上面写着“514 需要身份验证”,而不是 www.whatismyip.com。有什么想法吗?

答案1

在 Ubuntu 或 Debain 上,安装包“torsocks”

sudo apt-get install torsocks

在 Mac OS X 上通过 homebrew 安装

brew install torsocks

此后,像这样使用 wget:

torsocks wget http://foo.onion/data.bar

答案2

使用托里菲,它是 Tor 的简单包装器torsocks,例如:

$ torify curl ifconfig.me
$ torify wget -qO- -U curl ifconfig.me

使用之前,请确保你的 Tor 服务器已启动并正在运行。

也可以看看:如何使终端中的程序匿名化?在 Tor SE

答案3

Tor 独立版仅包含用于连接到 Tor 网络的 SOCKS 代理,而 Tor 浏览器包不添加任何额外的代理。

处理需要 HTTP 代理的程序的常用方法是安装您自己的代理,例如 Privoxy 或 Polipo,然后将该代理链接到 Tor。例如,在 Privoxy 的配置中,您将指定:

forward-socks5  /  127.0.0.1:9050 .

然后 Privoxy 监听端口 8118,并将您的 HTTP 代理设置配置为http://localhost:8118

不幸的是,Linux Mint 的存储库中似乎没有这两个软件包。您可以考虑更换发行版,或者自己编译一个。

答案4

这是该帖子优秀答案的总结
如何配置 Wget 以安全地与 Torify 协同工作?

Tails 的做法如下:

#!/bin/sh
unset http_proxy
unset HTTP_PROXY
unset https_proxy
unset HTTPS_PROXY

exec torsocks /usr/lib/wget/wget --passive-ftp "$@"

该脚本被设置为默认脚本wget(通过 dpkg-divert,这样非 torified 的 wget 就很难意外运行)并且将包装对 wget 的任何调用。

对 wget 的调用可能需要修改为本地操作系统,例如/usr/bin/wgetUbuntu。

评论:

  1. 取消设置http{,s}_proxy环境变量会阻止 wget 使用 Tor 之外的代理,并避免使用可能导致 torsocks 失败的本地主机资源。

  2. Torsocks 是一种用于包装本身不支持 SOCKS5 的应用程序的强大方法。

  3. --passive-ftp在命令行上(或passive_ftp = onwgetrc)停止使用“主动”FTP,因为这可能会向远程方泄露一些本地信息。

关于安全性,wget 发送的 User-Agent 通常会提供一些信息,这些信息可能允许识别 wget 和操作系统的版本。它可以通过注意伪造(因为服务器对不同的客户端可能有不同的行为)。

相关内容