Python (CherryPy) 网络应用本地部署,但在内网不可见

22 投票
1 回答
9405 浏览
提问于 2025-04-17 02:44

我用CherryPy创建了一个Python网页应用,并把它部署在我的本地电脑上。

但是,当我尝试从家里的另一台电脑访问这个应用时,什么都没有显示出来。

不过,如果我创建一个简单的html文件,并用下面的方式部署:

$ python -m SimpleHTTPServer

那么在局域网内是可以访问的。

我很困惑,为什么我的应用在本地可以正常工作,但在局域网内却无法访问。毕竟,这两台机器之间没有连接问题,而且我可以在同一个端口上提供其他内容。

我没有使用配置文件,而是用的CherryPy的默认设置。

1 个回答

32

默认设置可能是绑定到本地地址,也就是只在你自己的电脑上可用,这样外面的人是无法访问的。如果你想让CherryPy在公共网络上运行,你需要告诉它怎么做。从这个讨论中我发现:

cherrypy.config.update(
    {'server.socket_host': '10.149.4.240' } ) # Pub IP
cherrypy.quickstart()

或者

cherrypy.config.update(
    {'server.socket_host': '0.0.0.0'} )      
cherrypy.quickstart()

这样可以绑定到所有网络接口。

撰写回答