You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

远程连接Jupyter Notebook服务器及搭建可远程访问服务的方法

如何远程连接Jupyter Notebook服务器?

假设你已经在服务器上搭好了可远程访问的Jupyter服务,那本地连接其实很简单,分这几步:

  • 先开本地终端,用SSH做端口转发,命令是这样的:ssh -L 本地端口:localhost:服务器端Jupyter端口 你的服务器用户名@服务器IP
    举个例子,服务器Jupyter用默认8888端口,你本地也用8888的话,就输ssh -L 8888:localhost:8888 john@192.168.0.10
  • 转发成功后,打开本地浏览器,输入http://localhost:你刚才设的本地端口
  • 最后输入服务器端Jupyter设置的密码或者启动时给出的token,就能正常使用远程的Notebook了

如果服务器端配置了允许直接访问(比如设了0.0.0.0的IP),你也可以直接在浏览器输http://服务器IP:Jupyter端口,但强烈不建议这么做,除非你配了SSL加密,不然传输的数据是明文的,不安全,还是用SSH隧道更稳妥。

已拥有SSH访问权限且本地可运行Notebook,如何搭建配置远程访问的Jupyter服务器?

既然已经能SSH连服务器,还能本地跑Notebook,那配置远程服务就很顺了,跟着这几步来:

  1. 生成Jupyter配置文件:在服务器终端输jupyter notebook --generate-config,这个文件会存在~/.jupyter/jupyter_notebook_config.py,后面要改这个文件里的参数
  2. 设置访问密码:两种方式选一个就行:
    • 简单版:直接输jupyter notebook password,然后按提示输入两次密码,系统会自动把加密后的密码存在配置里,省事
    • 自定义哈希版:如果想手动配置,先进Python环境,输:
      from notebook.auth import passwd
      passwd()
      
      输入密码后会生成一串哈希字符串,把它复制下来,后面要用
  3. 修改配置文件:用文本编辑器打开~/.jupyter/jupyter_notebook_config.py,找到下面这些配置项,取消注释(删掉前面的#)然后修改:
    • c.NotebookApp.ip = '0.0.0.0':允许所有外部IP访问服务器的Jupyter
    • c.NotebookApp.password = '你刚才复制的哈希字符串':把哈希值填进去(如果用的简单版密码设置,这一步可以跳过,系统已经帮你弄好了)
    • c.NotebookApp.open_browser = False:服务器上不用打开浏览器,毕竟是远程用
    • c.NotebookApp.port = 8888:可以改成你喜欢的端口,比如8889,避免和其他服务冲突
    • 可选:c.NotebookApp.notebook_dir = '/home/john/my_notebooks':设置启动Jupyter时默认进入的工作目录,找文件更方便
  4. 启动Jupyter服务器
    • 直接输jupyter notebook就能启动,但如果断开SSH连接,服务就停了,所以建议后台运行:
      • nohup jupyter notebook &:后台运行,输出会存在nohup.out
      • 或者用screen/tmux:先开一个screen会话,在里面启动Jupyter,就算断开SSH,会话还在,下次连上去可以恢复
  5. 本地连接测试:按照第一个问题里的SSH端口转发方法,就能远程访问服务器上的Jupyter了

内容的提问来源于stack exchange,提问作者nico

火山引擎 最新活动