python - 如何通过 ssh 访问本地服务器上的端口?
问题描述
我在同一网络上的远程计算机上运行烧瓶服务器,其 IP 为 192.168.1.11。因此,网络的烧瓶服务器端点应该是192.168.1.11:5000
烧瓶选择的默认端口 5000。
但是,当我从本地计算机(IP:192.168.1.10)向192.168.1.11:5000
它发出请求时,它不会返回任何内容。
但是,当我在本地机器(IP:192.168.1.10)上运行以下命令ssh -L 4000:127.0.0.1:5000 user@192.168.1.11
然后点击localhost:4000
时,它可以工作。我知道这是 ssh 中的本地端口转发。
但是当我jupyter notebook
在远程机器上运行时,它运行在192.168.1.11:8890
. 然后,当我192.168.1.11:8890
从本地机器运行时,它就可以工作了。
为什么 jupyter 工作而不是通过默认配置烧瓶?是不是因为 jupyter 做了某种远程 ssh 端口转发。我如何运行一些代码,即一些配置等,如ssh -R xxxx:xxxx:xxxx xxxx
.
解决方案
似乎您的烧瓶服务器仅在环回接口上侦听。
来自文档:
外部可见服务器
如果您运行服务器,您会注意到服务器只能从您自己的计算机访问,而不能从网络中的任何其他计算机访问。这是默认设置,因为在调试模式下,应用程序的用户可以在您的计算机上执行任意 Python 代码。
如果您禁用了调试器或信任网络上的用户,则只需在命令行中添加 --host=0.0.0.0 即可使服务器公开可用:
flask run --host=0.0.0.0
这告诉您的操作系统侦听所有公共 IP。
推荐阅读
- c - LED 闪烁顺序
- java - 如何在 Jersey 客户端中读取有效载荷
- javascript - 如何在 Ajax 中传递每个行表的值
- amcharts - 我想隐藏工具提示背景容器,因为我在 am chart v4 中使用 html 内容
- c# - 沿路径螺旋绘制点
- typescript - 在 TypeScript 中使用地图或字典
- c# - 为 Edge 设置 HttpBrowserCapabilitiesBase.Browser
- aspose - 表格单元格中的文本右对齐
- scala - Scala播放框架:复杂读取以匹配案例类中同一字段的多个键
- azure-service-fabric - 为没有 Service Fabric 的应用程序分配名称