【问题标题】:DigitalOcean Ubuntu droplet not serving port 80DigitalOcean Ubuntu droplet 不服务于端口 80
【发布时间】: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


【解决方案1】:

事实证明,我必须启用 DigitalOcean 防火墙并应用正确的规则,否则如果没有防火墙,它只会默认阻止端口。

【讨论】:

    猜你喜欢
    • 2021-10-11
    • 2020-07-24
    • 1970-01-01
    • 2020-04-10
    • 2013-10-05
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    相关资源
    最近更新 更多