我是 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/wget
Ubuntu。
评论:
取消设置
http{,s}_proxy
环境变量会阻止 wget 使用 Tor 之外的代理,并避免使用可能导致 torsocks 失败的本地主机资源。Torsocks 是一种用于包装本身不支持 SOCKS5 的应用程序的强大方法。
--passive-ftp
在命令行上(或passive_ftp = on
在wgetrc
)停止使用“主动”FTP,因为这可能会向远程方泄露一些本地信息。
关于安全性,wget 发送的 User-Agent 通常会提供一些信息,这些信息可能允许识别 wget 和操作系统的版本。它可以通过注意伪造(因为服务器对不同的客户端可能有不同的行为)。