如何从远程连接访问 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 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

Linux 如何开启MySQL远程访问权限 允许远程连接

Docker安装frp实现远程桌面连接

如何在VPS上安装和访问CentOS 7远程桌面

为啥无法从阿里云服务器访问任何的redis

Python测试远程端口连接时间

如何从远程计算机(不是本地主机)访问 MySQL?