【发布时间】:2020-03-29 20:47:24
【问题描述】:
我在 DigitalOcean Ubuntu droplet 上有一个简单的 Python 服务器,它应该为 /dist 文件夹中的 index.html 文件提供服务:
port = 8000
os.chdir(os.path.join(os.path.dirname(__file__), 'dist'))
Handler = http.server.SimpleHTTPRequestHandler
httpd = socketserver.TCPServer(('', port), Handler)
print('Serving at port ', port)
httpd.serve_forever()
我运行“sudo ufw allow 80/tcp”来打开防火墙,如果我运行 ufw status,它会显示端口 80 对所有人开放。我运行 'sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8000' 将流量从端口 80 重定向到端口 8000。
如果我从另一个机器运行 nmap,唯一打开的端口是 22 上的 ssh。端口 80 被过滤。在我的浏览器中导航到主机会导致连接超时。这可能是什么原因造成的?
【问题讨论】:
-
你检查过cloud firewall吗?
-
我从未添加过;在 DigitalOcean 页面上,它显示“您尚未对这个 Droplet 应用任何防火墙。”
-
在环回接口(即服务器本身)上测试它是否有效?出于好奇,为什么要创建一个端口转发而不是直接监听 80 端口?
-
我尝试直接从端口 80 执行此操作,结果相同。如果我在服务器运行时尝试从服务器本身运行 nmap 或 netstat,端口 80 显示打开但服务器崩溃(对等方重置连接,没有其他有用的错误信息)。
-
那么这个问题可能更适合serverfault.com。
标签: python-3.x ubuntu server port