披露:在服务器上,我是个菜鸟。我就是这么说的。
所以我有一个运行 ubuntu 的虚拟机,它使用桥接网络连接,并在端口 8000 上运行 python web 服务器。当我进入http://localhost:8000/
虚拟机内部时,一切都按预期工作。但我需要从同一台机器上的虚拟机外部访问此 web 服务器。我曾经ifconfig
获取过 ubuntu 虚拟机的本地网络 ip 192.168.1.131
。现在,如果我在虚拟机外部使用浏览器访问,http://192.168.1.131
我会看到一个页面,显示:
有用!
这是该服务器的默认网页。
Web 服务器软件正在运行,但尚未添加任何内容。
但是这不是我的 python 网络服务器,而是在端口 80 上运行的其他东西。我的 python 在端口 8000 上运行,当我到达时,http://192.168.1.131:8000
我得到:
无法连接
Firefox can't establish a connection to the server at 192.168.1.131:8000.
这是怎么回事?Ubuntu 会阻止传入连接8000
但允许它们继续吗80
?这是在 Ubuntu 12.04 LTS 64 位虚拟机上的全新安装。任何帮助都非常感谢。谢谢。
答案1
你的 Python 网络服务器可以选择监听哪些地址。它可能正在监听仅有的在localhost
地址 (127.0.0.1) 上,而不是在外部 IP 地址 192.168.1.131 上。另一方面,Apache(或任何在端口 80 上响应的程序)可能正在监听全部地址,包括本地主机和您的外部 IP 地址。
要使用 Django 执行此操作,请尝试使用:
runserver 0.0.0.0:8000
查看django-admin 的文档了解更多详情。