【问题标题】:SSH tunnelling to a remote server with django使用 django 通过 SSH 隧道连接到远程服务器
【发布时间】:2017-01-01 22:58:37
【问题描述】:

我正在尝试设置一个 SSH 隧道来访问我的服务器(当前是 Azure 上的 ubuntu 16.04 VM),以设置对在其上运行的 django 应用程序的安全访问。

我能够用 Apache WSGI 模拟生产环境,它工作得很好,但由于我正在尝试开发应用程序,所以我现在不想将它提供给更广泛的公众使用 - 而是让它只可见为一群人。

重点是:当我在 Windows 10(8000 到 localhost:8000)上使用 putty 设置 ssh 隧道并运行 http://localhost:8000/ 时,出现以下错误:

“未找到 HTTP 错误 404。未找到请求的资源。”。

我怎样才能让它工作?我使用 manage.py runserver 0:8000 运行服务器。 我在某处发现错误可能是由于应用程序无权访问 ssh 文件,但我不知道这是否是重点(或如何更改)。

问候,

多米尼克

【问题讨论】:

  • 也许 django 期待 Host: 标头而不是 Host: localhost

标签: django azure ssh ssh-tunnel


【解决方案1】:

经过几个小时的尝试,我能够解决问题。

首先,我确保 putty 连接到服务器并创建所需的隧道。为此,我右键单击腻子窗口(标题栏)并单击事件日志。我查看了日志,发现如下错误:

本地端口 8000 转发到 localhost:8000 失败:网络错误: 权限被拒绝

我能够通过选择其他本地端口(在我的实例中为 9000 而不是 8000)来解决它。

其次,我编辑了 sshd_config 文件:sudo vi etc/ssh/sshd_config

并添加了这三行:

 AllowAgentForwarding yes
 AllowTcpForwarding yes 
 GatewayPorts yes

我保存了文件并重启了ssh服务:

 sudo service ssh stop
 sudo service ssh start

现在当我访问 localhost:9000 时,一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-27
    • 2016-11-18
    • 2020-07-05
    • 2019-11-19
    • 2019-01-29
    • 2014-05-03
    • 2019-11-12
    • 2020-09-30
    相关资源
    最近更新 更多