如何检查通过 Tor 路由的命令行请求?

Chr*_*ris 5 command-line virtualbox tor

我想我已经设置了 Virtualbox,以便所有来自来宾操作系统的流量都通过 Tor 路由。Tor 仅安装在主机操作系统上,并且当我使用 seeyip.com 进行测试时,来宾操作系统上的 Web 浏览器都报告了欧洲的 Tor IP。主机操作系统在访问相同站点时会显示我的真实 IP。

但是我从 Linux 命令行发起了很多请求,我无法满意地确认这些请求是通过 Tor 路由的,尽管我没有理由认为它们不是。

当我使用这个命令时,我没有从来宾操作系统得到任何输出,而是从主机操作系统得到我的真实 IP:

dig myip.opendns.com @resolver1.opendns.com +short
Run Code Online (Sandbox Code Playgroud)

此 bash 文件不提供任何操作系统的输出:

#!/bin/bash

echo Your external IP Address is:
wget http://Www.whatismyip.com -O - -o /dev/null | grep '<TITLE>' |\
  sed -r 's/<TITLE>WhatIsMyIP\.com \- //g' | sed -r 's/<\/TITLE>//g'

exit 0
Run Code Online (Sandbox Code Playgroud)

建议?

qbi*_*qbi 2

通常,从 shell 调用的软件不知道 Tor 或任何其他代理。所以你必须告诉它。不好的是,许多软件都有设置代理的特定方法。下面您将找到一些让 Tor 在命令行上运行的方法。我假设您在 IP 地址 127.0.0.1 和端口 8118 上运行 Tor 和 Privoxy 的组合。在您的情况下,情况可能并非如此。所以您应该输入正确的值。

代理环境变量

有一个特殊的环境变量受到一些 shell 软件的尊重。打开您的.bashrc(或其他 shell rc 文件)并输入以下行。

export http_proxy="http://127.0.0.1:8118"
export https_proxy=${http_proxy}
export HTTP_PROXY=${http_proxy}
export HTTPS_PROXY=${http_proxy}
Run Code Online (Sandbox Code Playgroud)

众所周知,wget、GnuPG 和curl 等应用程序都会尊重这些值。

躯干袜

Torsocks 是一个帮助软件,可以通过 Tor 重新路由所有请求。只需将软件添加到任何命令行调用之前即可。

torsocks your-shellscript
torsocks wget http://example.org
Run Code Online (Sandbox Code Playgroud)

此外,您还可以tor-resolve通过 Tor 获取 IP 地址。

tor-resolve example.org
torsocks ssh $(tor-resolve my.server.example.org)
Run Code Online (Sandbox Code Playgroud)

SSH

如果您使用 SSH,则可以编辑您的$HOME/.ssh/config.

Host *
     ProxyCommand socat STDIO SOCKS4A:127.0.0.1:%h:%p,socksport=9050
Run Code Online (Sandbox Code Playgroud)

此设置通过 Tor 发送每个SSH 连接。但是,关键字Hostinssh_config允许您为特殊主机进行设置。请查看 的联机帮助页ssh_config

更多资源

Torproject.org 上的TorifyHOWTO提供设置不同服务的建议。可能toraliases还会给出一些提示并有 IPtables 的设置。


pl1*_*1nk 0

使用ProxyChains,以便您可以通过代理服务器运行任何程序。

来自 ProxyChains项目

  • 允许通过代理进行 TCP 和 DNS 隧道。
  • 支持HTTP、SOCKS4和SOCKS5代理服务器。