我正在运行一个 GCE 实例。我运行sudo ufw allow http && nc -l 80
成功了,显示 80 已打开。但是,当我尝试使用 运行 Python 服务器 waitress 来打开服务器时,sudo waitress-serve --listen=0.0.0.0:80 --call 'flaskr:create_app'
它不起作用。我确保在 GCP 中设置的防火墙允许在端口 80 上进行 TCP 连接。当我使用localhost
而不是 时0.0.0.0
,它没问题,但如果我使用0.0.0.0
,它会显示以下堆栈跟踪:
File "/usr/lib/python3/dist-packages/waitress/__init__.py", line 11, in serve
server = _server(app, **kw)
File "/usr/lib/python3/dist-packages/waitress/server.py", line 85, in create_server
sockinfo=sockinfo)
File "/usr/lib/python3/dist-packages/waitress/server.py", line 183, in __init__
self.effective_host, self.effective_port = self.getsockname()
File "/usr/lib/python3/dist-packages/waitress/server.py", line 299, in getsockname
self.socketmod.NI_NUMERICSERV)
socket.gaierror: [Errno -3] Temporary failure in name resolution
这表明存在 DNS 问题,但我不清楚是什么问题。0.0.0.0
表示它将尝试连接任何可以连接的 IP 地址。您知道问题可能是什么吗?
答案1
这是一个漏洞该问题已在 Waitress 1.0.2 中修复。您应该升级到最新可用版本,或在 Launchpad 上提交错误报告以请求 Ubuntu 反向移植该错误修复。