我使用 anemone gem 编写了一个 ruby 脚本来抓取网站。该脚本在直接使用时运行良好。
但我想使用 socksify gem,以便脚本中的所有 TCP 调用都使用 socks5 路由。我做了同样的事情:
- 安装并启动 Tor 项目,它正在我的机器上运行
- 安装了socksify gem
- 运行这里
socksify_ruby localhost 9050 myscript.rb
给出的以下命令
然而,在这种情况下 anemone 没有检测到任何页面。请让我知道我在做什么错误。
有许多问题可能导致这种情况发生。首先,如果你的机器上没有运行 ntp,而且时间稍微少了一点,你将无法使用 socks 服务器做任何复杂的事情。这发生在我身上。您需要安装 ntp 并确保它在执行任何操作之前已同步。
其次,你可能会发现很多类似 socksify 的命令已经过时了。我发现确保一切都通过 socks 端口发生而没有 dns 泄漏的最佳方法是使用 curl,它具有多种语言的绑定。您可以使用 tcpdump 仔细观察流量,以确保它没有泄漏,并且根据我的经验,它是无懈可击的。
我还建议您查看 dgoulet 最近在 github 上更新的 torsocks。这取代了过时的 socksify_ruby 所基于的 tsocks。
最后,隐藏服务最近一直承受着巨大的压力,因为一个机器人决定启动几百万个 Tor 客户端。确保您可以连接 Tor Browser Bundle,假设您正在处理的项目正在尝试抓取隐藏服务。
你实际上并没有说这个项目涉及 Tor 或隐藏服务,但你确实用 Tor 标记了它。