如何通过SSH访问本地服务器上的端口?

时间:2018-09-01 14:18:58

标签: python flask ssh

我正在同一网络上的远程计算机上运行Flask服务器,其IP为192.168.1.11。因此,网络的Flask服务器端点应为192.168.1.11:5000,其中5000是flask选择的默认端口。

但是,当我从本地计算机(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

1 个答案:

答案 0 :(得分:1)

您的烧瓶服务器似乎仅在环回接口上侦听。

来自docs

外部可见服务器

  

如果运行服务器,您将注意到只能从您自己的计算机访问该服务器,而不能从网络中的任何其他服务器访问该服务器。这是默认设置,因为在调试模式下,应用程序的用户可以在计算机上执行任意Python代码。

     

如果禁用了调试器或信任网络上的用户,则只需在命令行中添加--host = 0.0.0.0,即可使服务器公开可用:

flask run --host=0.0.0.0
  

这告诉您的操作系统侦听所有公共IP。

相关问题