piy*_*vra 4 python networking 14.04
我运行以下命令来运行 http 服务器
python -m SimpleHTTPServer
Run Code Online (Sandbox Code Playgroud)
并收到以下消息
Serving HTTP on 0.0.0.0 port 8000 ...
Run Code Online (Sandbox Code Playgroud)
但我无法在本地 wifi 网络中的另一台机器/手机上访问它,我尝试从我的本地机器访问它并能够访问它。
请让我知道是否有人能够找出问题所在。提前致谢。
SimpleHTTPServer
默认绑定到 ip 地址0.0.0.0
。这是一个特殊的地址,实际上意味着“任何地址”。如果要绑定到例如localhost
or 127.0.0.1
,则只能从本地机器连接到它,因为127.0.0.1
属于回送设备。但是使用0.0.0.0
,服务器绑定到lo
,eth0
以及您可能拥有的任何其他网络设备。
因此,您的小型服务器应该可以从网络中的其他机器访问。这并不表示有什么东西(除了你的小服务器)禁止它,也许是防火墙。您可以使用nmap
另一台机器检查端口 8000 的状态(您可能需要安装nmap
)。假设你的小服务器运行在 ip 192.168.0.1 上,另一台机器是 192.168.2.101。然后你会从 192.168.2.101 开始
nmap -p 8000 192.168.0.1
Run Code Online (Sandbox Code Playgroud)
输出应该是这样的
PORT STATE SERVICE
8000/tcp open http-alt
Run Code Online (Sandbox Code Playgroud)
如果状态为“打开”,则端口是可访问的,并且有一些东西在那里监听,所以你的小服务器应该是可访问的。
如果状态为“关闭”,则端口是可访问的,但那里没有任何监听。在这种情况下,可能您的服务器已终止,或者您混淆了 ip 或端口号。
如果状态为“已过滤”,则有某种 ip 过滤防火墙在起作用,可阻止您访问您的小服务器。