首页 > 解决方案 > 如何公开 Python 服务器?

问题描述

使用此代码:

from http import server
class Serv(server.BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
server.HTTPServer(('host', 80), Serv).serve_forever()

我尝试使用我的公共 IP,但它不起作用,我的私有 IP,它只能在同一个网络中工作,以及 localhost,它只是我的 PC。如何更改主机,以便当有人连接到我的 IP 时,它会连接到我的网站(从我的代码)?我需要我的路由器重定向到我的电脑吗?我知道主机可以是我的私有 IP 或本地主机,我可以使用其他主机吗?编辑:我在另一个使用 Flask 的问题中看到了答案,我现在不想使用任何依赖项。

标签: pythonhttphttp.server

解决方案


如果你想让它在任何地方工作,

你的应用程序应该监听 IP 地址0.0.0.0

这意味着(简而言之)any IPv4 address at all

from http import server

class Serv(server.BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b'Hello, world!')
server.HTTPServer(('', 80), Serv).serve_forever()

如果您使用的是最近基于 linux/GNU 的操作系统,您可以使用以下命令检查监听端口:

ss -ltpn

请注意,修改后,您将依赖您和服务器之间的任何代理/防火墙来获取应用程序响应。


推荐阅读