永远相信美好的事情终将发生

jupyter notebook连接远程服务器

  此方法可以通过本地浏览器访问远程服务器上的notebook。

  1. 在远程服务器上打开ipython,保存哈希密码
    1
    2
    3
    4
    from notebook.auth import passwd
    passwd()
    #根据提示输入任意密码,如abcd,会得到如下输出,记录下来
    #sha1:xxxxxxx
  2. 进入~/.jupyter/,查看是否有notebook的配置文件jupyter_notebook_config.py,若没有的话直接创建:
    1
    2
    3
    4
    5
    6
    cat > jupyter_notebook_config.py
    c = get_config()
    c.NotebookApp.ip='*'
    c.NotebookApp.password = u'sha1:xxxxx' # xxxx为上一步生成的哈希密码
    c.NotebookApp.open_browser = False
    c.NotebookApp.port = 5678 # 随机挑选数字
  3. 在远程服务器上执行如下命令:
    1
    jupyter notebook --no-browser --port=5678
  4. 在本地的终端输入如下命令:
    1
    2
    3
    4
    5
    6
    7
    8
    ssh -N -f -L 127.0.0.1:1234:127.0.0.1:5678 user@address
    #表示把本地的1234端口连接到远程服务器上的5678端口
    -N 告诉SSH不执行远程命令,用于端口转发
    -f 让SSH后台运行,也可以不设-f,前台运行
    -L 出端口转发的配置,remote port 5678 -> local port 1234

    #如果远程服务器不是通过22端口进行ssh连接,则可以通过 -p nnn 指定ssh的端口
    #此命令会在后台执行,可以通过 kill 命令把对应的进程关闭
  5. 打开本地浏览器,地址栏输入localhost:1234,输入第一步指定的密码abcd即可。