我知道如何使用 Tor 浏览器,当我通过 Tor 浏览器连接 Tor 网络时,命令
curl --socks5-hostname localhost:9150 -O https://dist.torproject.org/tor-0.4.7.10.tar.gz
wget
效果很好,但我无法与 Tor 一起使用。我在互联网上搜索过,但在 Tor 被审查时没有找到关于此的教程。
现在我的问题是
- 当 Tor 被审查时,我可以通过 CLI 连接 Tor 网络吗?根据我的经验,唯一有效的桥梁是 Snowflake,其他桥梁即使有时也有效,但不如 Snowflake 有效。
wget
如果我通过 Tor 浏览器连接 Tor 网络,如何发出通过 Tor 网络等命令?
snowflake-client
现在我已经使用Tor 浏览器中的文件和torrc
Snowflake 源代码中的修改文件连接了 Tor 网络。到目前为止效果很好。
答案1
所以......当 Tor 被审查时,你“知道如何使用 Tor 浏览器”,所以想必你已经有了一个可以使用的 Tor Bridge 地址。我在评论里发的链接是关于使用torify
/torsocks
来启用 Tor 与类似命令的使用wget
,但您的评论表明这不是您的问题所在。
那么,也许您真的在问“如何配置非浏览器 Tor 以使用网桥?”答案是:在torrc
文件中配置桥接地址,该文件通常位于/etc/tor/
.
从man tor
:
UseBridges 0|1
设置后,Tor 将获取“网桥”配置行中列出的每个网桥的描述符,并使用这些中继作为条目防护和目录防护。 (默认值:0)
Bridge [transport] IP:ORPort [fingerprint]
当与 UseBridges 一起设置时,指示 Tor 使用“IP:ORPort”处的中继作为中继到 Tor 网络的“网桥”。如果提供了“指纹”(使用与 DirAuthority 相同的格式),我们将验证在该位置运行的中继是否具有正确的指纹。我们还使用指纹在网桥权限处查找网桥描述符(如果已提供)并且也设置了 UpdateBridgesFromAuthority。
如果提供“transport”,它必须与 ClientTransportPlugin 行匹配。然后,我们使用可插入传输的代理将数据传输到桥,而不是直接连接到桥。某些传输使用特定于传输的方法来计算要连接的远程地址。这些传输通常会忽略桥接线路中指定的“IP:ORPort”。
连接到网桥时,Tor 将任何“key=val”设置作为每个连接参数传递给可插入传输代理。有关其支持的参数的详细信息,请参阅可插拔传输的文档。
如果这不是您正在寻找的答案,请wget
更详细地描述您在使用 Tor 时遇到的失败,以便我们更好地了解实际问题是什么。
答案2
我很确定这是 DNS 和 IPv6 问题,与审查制度无关。当远程名称解析为 IPv6 地址时,它看起来torsocks
不起作用,而是使用 SOCKS5 代理直接允许远程名称解析,相比之下torsocks
,它用于LD_PRELOAD
修补许多 libc 网络功能,包括解析功能。我还发现您没有curl
正确使用 Tor,因为使用--socks5
将在本地解析名称,泄漏 DNS 请求,您应该使用--socks5-hostname host:port
或--proxy socks5h://host:port
,或者更好地坚持使用 Tor 浏览器。
换句话说,torsocks wget https://example.com
首先example.com
通过Tor网络解析,使用SOCKS5扩展,然后使用SOCKS5代理连接到解析的地址,AAAA
解析很可能是这里的问题。curl --socks5 localhost:9150 https://example.com
首先example.com
在本地解析,然后使用 SOCKS5 代理连接到解析的地址。