我想用Python中的CherryPy创建一个洋葱网站(使用Stem访问Tor网络)。我的问题是站点的部署。为此,我采用了本文中的示例:https://jordan-wright.com/blog/2014/10/06/creating-tor-hidden-services-with-python/(很棒的文章,但最初与Flask结合使用,但这也适用于CherryPy,反之亦然)。唯一的区别是Flask在端口5000上运行,CherryPy在8080上运行(我在下面的代码中更改了这一点)
我的最终测试代码如下所示:
import cherrypy
from stem.control import Controller
class HelloWorld(object):
@cherrypy.expose
def index(self):
return "Hello world!"
if __name__ == '__main__':
port = 8080
host = "127.0.0.1"
hidden_svc_dir = '/home/python/'
print(" * Getting controller")
controller = Controller.from_port(address="127.0.0.1", port=9151)
try:
controller.authenticate(password="")
controller.set_options([
("HiddenServiceDir", hidden_svc_dir),
("HiddenServicePort", "80 %s:%s" % (host, str(port)))
])
svc_name = open(hidden_svc_dir + "/hostname", "r").read().strip()
print(" * Created host: %s" % svc_name)
except Exception as e:
print(e)
cherrypy.quickstart(HelloWorld())
My/etc/tor/torrc包含以下内容:
ControlPort 9051
HashedControlPassword xxx
CookieAuthentication 1
(我还尝试了使用/不使用密码以及使用/不使用Cookies设置为1和0-所有这些都带有相同的错误消息。)
虽然在其他代码中,我使用Stem/Tor,并且它们工作正常,但这一个会抛出错误消息:
* Getting controller
Traceback (most recent call last):
File "/home/xxx/.local/lib/python3.6/site-packages/stem/socket.py", line 535, in _make_socket
control_socket.connect((self.address, self.port))
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "onion_server_1.py", line 20, in <module>
controller = Controller.from_port(address="127.0.0.1", port=9151)
File "/home/xxx/.local/lib/python3.6/site-packages/stem/control.py", line 1033, in from_port
control_port = stem.socket.ControlPort(address, port)
File "/home/xxx/.local/lib/python3.6/site-packages/stem/socket.py", line 503, in __init__
self.connect()
File "/home/xxx/.local/lib/python3.6/site-packages/stem/socket.py", line 172, in connect
self._socket = self._make_socket()
File "/home/xxx/.local/lib/python3.6/site-packages/stem/socket.py", line 538, in _make_socket
raise stem.SocketError(exc)
stem.SocketError: [Errno 111] Connection refused
我不知道为什么这不起作用
一个工作代码(从上面我的代码中采用)会很好
目前没有回答
相关问题 更多 >
编程相关推荐