Tor无法运行,无法绑定其中一个侦听器端口

时间:2018-03-24 21:44:22

标签: python tor stem

当我从词干文档中运行[示例] [1]时,我收到错误:

OSError: Process terminated: Failed to bind one of the listener ports.

我正在运行的确切代码如下:

import socks
import socket
import stem.process
import urllib

from stem.util import term

SOCKS_PORT = 7000

# Set socks proxy and wrap the urllib module

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', SOCKS_PORT)
socket.socket = socks.socksocket

# Perform DNS resolution through the socket

def getaddrinfo(*args):
  return [(socket.AF_INET, socket.SOCK_STREAM, 6, '', (args[0], args[1]))]

socket.getaddrinfo = getaddrinfo

def query(url):
    return urllib.urlopen(url).read()

def print_bootstrap_lines(line):
  if "Bootstrapped " in line:
    print(term.format(line, term.Color.BLUE))

print(term.format("Starting Tor:\n", term.Attr.BOLD))

tor_process = stem.process.launch_tor_with_config(
  config = {
    'SocksPort': str(SOCKS_PORT),
    'ExitNodes': '{ru}',
  },
  init_msg_handler = print_bootstrap_lines,
)

print(term.format("\nChecking our endpoint:\n", term.Attr.BOLD))
print(term.format(query("https://www.atagar.com/echo.php"), term.Color.BLUE))

print(query("https://stackoverflow.com/questions/30286293/make-requests-using-python-over-tor"))

tor_process.kill()  

我已经看到答案说在端口9050上运行了另一个进程,但是在终端中运行命令sudo netstat -anl | grep 9050不会给我带来任何结果。

请随时提出可能有用的建议。

此外,关于"对俄罗斯的第一个例子是爱情"完美无缺。

感谢您提供任何帮助。

4 个答案:

答案 0 :(得分:4)

已安装检查器

sudo apt install tor

检查

sudo gedit /etc/default/tor

找到并补充"是"到"不"有

RUN_DAEMON="yes"

停止守护程序

sudo /etc/init.d/tor stop

答案 1 :(得分:0)

正在工作,并在Linux Mint上遇到了这个问题。

能够通过长时间睡眠/暂停来绕过它。

Import time
time.sleep(1000)      #usually sleep it over 10 minutes for my case

从我抓取的角度来看,它需要睡觉,所以它很完美,但我当然可以看到它在其他情况下无济于事。

答案 2 :(得分:0)

由于您使用的SOCKS_PORT为7000,请使用以下命令查找使用它的进程。

sudo netstat -plnt | grep 7000

如果您得到类似这样的输出(请参见结尾处的tor),

tcp        0      0 127.0.0.1:7000          0.0.0.0:*               LISTEN      13009/tor

使用sudo killall tor终止Tor过程。

不建议使用“ sudo”和进程名称(“ tor”)来终止命令。相反,您应该使用kill pid命令,其中pid是上述输出中存在的进程ID(13009)。

答案 3 :(得分:0)

我在使用“线程”包时遇到了这个问题,这是我的解决方案,可能对流浪者很方便。

我使用了最佳答案提供的解决方案 并且也这样做了:

.docx
相关问题