![在 GCE 上为我的实例打开端口时遇到问题](https://linux22.com/image/729454/%E5%9C%A8%20GCE%20%E4%B8%8A%E4%B8%BA%E6%88%91%E7%9A%84%E5%AE%9E%E4%BE%8B%E6%89%93%E5%BC%80%E7%AB%AF%E5%8F%A3%E6%97%B6%E9%81%87%E5%88%B0%E9%97%AE%E9%A2%98.png)
我正在运行一个 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 反向移植该错误修复。