frp对JupyterNotebook远程代理出错

frp对JupyterNotebook远程代理出错

事件前提

之前一直使用frp,将搭建的jupyter-notebook 暴露到外网,以供笔者远程使用。但有一天突然笔者的jupyter-notebook页面打不开了

报错日志

于是笔者到实验室服务器查看错误日志:

2020/01/22 16:02:46 [E] [proxy.go:581] [2049e55e5b93dab3] [http] connect to local service [127.0.0.1:8888] error: dial tcp 127.0.0.1:8888: connect: connection refused

错误定位与解决

  • 笔者首先怀疑frp版本问题,更新,无果

  • 以为是frp停用,于是下载ngrok进行代理,无果

  • 由于jupyter-notebook一直运行在后台,笔者停止了这个进程,并且重新打开,浏览器端继续访问代理的目标地址,发现notebook日志:

[W 16:24:57.847 NotebookApp] 403 GET /static/base/images/logo.png?v=641991992878ee24c6f3826e81054a0f (127.0.0.1) 4.74ms referer=http://106.13.xxx.175:8888/tree?
[W 16:24:58.146 NotebookApp] Blocking request with non-local 'Host' 106.13.xxx.175 (106.13.xxx.175:8888). If the notebook should be accessible at that name, set NotebookApp.allow_remote_access to disable the check.

问题

可以看出,JupyterNotebook本身配置文件的NotebookApp.allow_remote_access需要设置成True才能进行远程访问。之前可能笔者重新生成了配置文件,于是配置遭到覆盖,所以远程失效。

解决方案

  • (可选) 如果您从来没生成Notebook配置文件,执行jupyter notebook --generate-config
    若root用户执行以上命令会提示

    Running as root it not recommended. Use --allow-root to bypass.

    只需加上 --allow-root 选项即可

    执行成功后提示以下信息:

    Writing default config to: /home/username/.jupyter/jupyter_notebook_config.py

  • (可选)生成密码

    服务器端命令行输入:
    jupyter notebook password

    此时会提示输入密码及确认密码,密码设置完成后提示将生成的密码写入/home/username/.jupyter/jupyter_notebook_config.json,注意username视用户而定,会直接出现在提示信息中。

    $ Jupyter notebook password
    Enter password: ****
    Verify password: ****
    [NotebookPasswordApp] Wrote hashed password to /home/username/.jupyter/jupyter_notebook_con
    

    打开存储密码的json文件,可以看到:

    “password”: “sha1:8d076d7433e6:7f0ed1c8e081133cec66f78748b01d7e27bdfec3”

    复制此密文

  • 修改配置文件

    在/home/username/.jupyter/jupyter_notebook_config.py中找到以下行,修改为:

    c.NotebookApp.ip='*' #允许访问的IP地址,设置为*代表允许任何客户端访问
    c.NotebookApp.password = u'sha1:8d...刚才生成密码时复制的密文'
    c.NotebookApp.open_browser = False
    c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
    c.NotebookApp.allow_remote_access = True
    

事后一支烟

反思本次遭遇到的错误,实际上是由于另一个错误导致的,因此进行错误排查时要看多方的日志报告,笔者一直以为是frp的问题,最后才发现是Notebook配置的问题,便立此文,以警后人。

参考

https://www.jianshu.com/p/42956ad62088

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值