如何从远程连接访问 python http 服务器?
Posted
技术标签:
【中文标题】如何从远程连接访问 python http 服务器?【英文标题】:How do I access a python http server from a remote connection? 【发布时间】:2019-09-13 04:44:41 【问题描述】:我正在从命令行尝试命令 python http.server,并尝试访问服务器。我可以从 localhost 轻松访问,但是每当我尝试使用远程连接时,我都无法连接。
我尝试了不同的端口,但我的防火墙似乎没有阻止任何连接。
从命令行,我运行
python3 -m http.server 8000
返回
Serving HTTP on 0.0.0.0 port 8000 ...
但是,我只能从 localhost 连接到服务器。
sudo iptables -S
返回以下内容:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
我希望能够使用 URL http://10.247.30.125:8000(我的 IP 地址)从远程主机连接,但我无法这样做。相同的 url 在 localhost 上运行良好。
【问题讨论】:
您可能需要转发。你也可以谷歌ngrok
我认为这是一个网络配置问题,而不是一个编程问题。 “0.0.0.0”表示它正在侦听所有可用的接口。如果您无法访问它,那是因为您的接口都没有接收到您尝试使用的地址的流量。
【参考方案1】:
我知道发生了什么。做了一些关于 IP 和 NAT 的阅读,并注意到任何以 10 开头的 IP 地址都保留给私有 IP 地址。因此,尝试从我自己的网络以外的任何地方连接到 10.247.30.125:8000(所以在没有连接到我的 wifi 时)不起作用。为了能够从外部网络连接,我需要设置端口转发(如 Reedinationer 建议的那样),并且我需要使用路由器的公共 IP 地址而不是计算机的私有 IP 地址。我会从我的路由器设置一个端口转发,以将外部流量引导到我的计算机,这将允许我从外部网络连接到我的个人计算机。
感谢所有回复的人!
【讨论】:
【参考方案2】:url 中缺少端口试试这个 url 它应该可以工作“http://10.247.30.125:8000”
【讨论】:
好点,这就是我实际尝试过的,我只是在帖子中打错了字。我对“10.247.30.125:8000”有同样的错误。我编辑了帖子以反映这一点。以上是关于如何从远程连接访问 python http 服务器?的主要内容,如果未能解决你的问题,请参考以下文章