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

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

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

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

当我使用此命令时,我没有从客户操作系统获得任何输出,但是从主机操作系统获得了我的真实 IP:

dig myip.opendns.com @resolver1.opendns.com +short

此 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

有什么建议吗?

答案1

通常,从 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}

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

躯干袜

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

torsocks your-shellscript
torsocks wget http://example.org

此外,您还可以使用tor-resolveTor 获取 IP 地址。

tor-resolve example.org
torsocks ssh $(tor-resolve my.server.example.org)

SSH

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

Host *
     ProxyCommand socat STDIO SOCKS4A:127.0.0.1:%h:%p,socksport=9050

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

更多资源

Torify如何Torproject.org 提供了有关设置不同服务的建议。toraliases也许还会给出一些提示并且有 IPtables 的设置。

答案2

使用代理链这样您就可以通过代理服务器运行任何程序。

来自 ProxyChains项目

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

相关内容