首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby Tor Switching Ip - "general SOCKS server failure“,除非我产生一个新进程来telnet到Tor控制端口

Ruby Tor Switching Ip - "general SOCKS server failure“,除非我产生一个新进程来telnet到Tor控制端口
EN

Stack Overflow用户
提问于 2017-08-03 12:24:05
回答 1查看 400关注 0票数 0

当尝试使用telnet切换Tor IP地址时,我在尝试通过telnet连接到Tor控制端口时遇到了SOCKSError::ServerFailure: general SOCKS server failure。但是,如果我产生一个新的进程来进行telnetting,我就没有问题。我不想产生一个新的进程,因为它丑陋。我希望有人能帮我找出为什么我会有这个问题和一个更粗糙的解决方案?

复制:

起始点:

tor --SocksPort 9350 --ControlPort 53500 --CookieAuthentication 0 --HashedControlPassword <passwordhash> --DataDirectory /tmp/tor_data/9350

然后运行这个ruby代码,它使用socksify设置socks服务器,然后使用tor gem Tor::Controller.connect块,它通过telnet连接到Tor控制端口来切换Tor端点:

代码语言:javascript
复制
require 'socksify'
require 'terminator'
require 'tor'

TCPSocket::socks_server = "127.0.0.1"
TCPSocket::socks_port = "9350"

Tor::Controller.connect(:port => 53500) do |tor| #<- error
  tor.authenticate("")
  tor.signal("newnym")
end

调用Tor::Controller.connect时出错:

代码语言:javascript
复制
SOCKSError::ServerFailure: general SOCKS server failure

如果我用下面的代码替换Tor::Controller.connect块(产生一个新进程来执行远程登录),我就成功了:

代码语言:javascript
复制
telnet_pid = nil
begin
  Terminator.terminate :seconds => 20 do
    cmd = "bundle exec ruby -e \"require 'tor'\" -e " +
          "\"Tor::Controller.connect(:port => 53500)" +
          "{|tor| tor.authenticate(''); tor.signal('newnym')}\""
    telnet_pid = Process.spawn(cmd)
    Process.wait telnet_pid
  end
rescue Terminator.error
  puts 'Telnet process to switch Tor endpoint timed out!'
  Process.kill('TERM', telnet_pid) if telnet_pid
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-03 12:40:13

我意识到socks服务器正在通过SOCKS服务器路由所有TCP请求,包括我的telnet请求。如果我在then时禁用socks服务器,然后重新启用它,它会起作用:

代码语言:javascript
复制
TCPSocket::socks_server = nil
TCPSocket::socks_port = nil

Tor::Controller.connect(:port => 53500) do |tor| #<- error
  tor.authenticate("")
  tor.signal("newnym")
end

TCPSocket::socks_server = "127.0.0.1"
TCPSocket::socks_port = "9350"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45474791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档