无法连接到python-m SimpleHTTPServer服务器

无法连接到python-m SimpleHTTPServer服务器,python,command-line,server,Python,Command Line,Server,这可能是一个非常简单的问题,但我一直没有找到答案。在有关它的在线文章中,他们没有显示使用SimpleHTTPServer共享目录的确切过程。我已成功运行该命令并运行服务器,但我只能在启动它的计算机上访问它 192.168.1.2:8000 我已经在Windows机器上和本地网络上的iPad上试过了(尽管这并没有什么区别)。为了访问它,我一直在使用我的本地IP地址,我通过运行ifconfig | grep inet找到该地址,该地址返回(除其他匹配项外): inet 192.168.1.2网络掩

这可能是一个非常简单的问题,但我一直没有找到答案。在有关它的在线文章中,他们没有显示使用SimpleHTTPServer共享目录的确切过程。我已成功运行该命令并运行服务器,但我只能在启动它的计算机上访问它

192.168.1.2:8000
我已经在Windows机器上和本地网络上的iPad上试过了(尽管这并没有什么区别)。为了访问它,我一直在使用我的本地IP地址,我通过运行
ifconfig | grep inet
找到该地址,该地址返回(除其他匹配项外):

inet 192.168.1.2网络掩码255.255.255.0广播192.168.1.255

在网上搜索之后,我发现:

有一个函数可以让你方便地与朋友分享url,但我尝试在本地运行,得到的结果是“localhost.localdomain”,它显然返回127.0.0.1


如何实现此功能?

启动SimpleHTTPServer时,它会告诉您正在侦听的IP地址:

  python -m SimpleHTTPServer
  Serving HTTP on 0.0.0.0 port 8000 ...
地址
0.0.0.0
表示它监听所有可用的IP地址。因此,在这种情况下,您只需通过

如果它不起作用,那么很可能是网络问题。您可以使用
telnet
命令(Windows和UNIX都可用)对此进行测试:
telnet
将在特定IP和特定端口上打开TCP/IP连接

例如,在UNIX上,您可以执行以下操作:

  telnet 192.168.1.2 8000 
如果您得到:

 telnet 192.162.1.2 8000
 Trying 192.162.1.2...
 telnet: connect to address 192.162.1.2: Connection refused
 telnet: Unable to connect to remote host
。。。这意味着SimpleHTTPServer正在运行

如果等待时间很长,则表示路由器/防火墙正在阻止连接

如果您得到答复:

telnet localhost 8000
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

。。。浏览器也应该可以工作。您只需继续按enter键即可退出telnet(SimpleHTTPServer将关闭连接)。

服务器正在运行,我们可以访问它,但只能在服务器的计算机上访问它。 有东西阻塞了连接,那就是防火墙

我们配置了防火墙,它工作正常,我的其他设备可以访问。

在Ubuntu中 我也有同样的问题,然后我把它缩小为防火墙问题。 首先,检查防火墙是否处于活动状态

sudo ufw status
如果它在默认情况下处于活动状态,则会阻止来自任何位置的所有传入连接

您可以检查是否已授予对正在运行的端口的访问权限。下面的命令将列出所有可用的规则。如果您的端口不在那里,并且允许访问其他端口,则需要授予访问权限

sudo ufw status numbered
[这就是问题所在]现在授予所需ip地址/all在端口上的访问权限。通过以下命令,我允许所有ip地址上的8000端口的所有传入连接

sudo ufw allow from any to any port 8000 proto udp

起初,我认为这应该是tcp而不是udp,但只适用于udp。以后要挖掘的内容。

您有公共IP吗?因为你应该用它来代替。你解决这个问题了吗?这让我抓狂。如果telnet的结果是后者,但仍然无法从其他设备访问服务器,那么诊断结果会是什么?我正试图从同一网络上的iPad访问在端口8000上的MBP上运行的
SimpleHTTPServer
。如果telnet工作但浏览器不工作,则表示网络连接正常,但浏览器不正常。通常这意味着浏览器正试图为本地网络使用代理服务器(ISP提供)。建议尝试使用其他浏览器并检查浏览器代理设置。