搭建jupyter notebook服务器并用ssh转发连接

背景

因为假期回不去学校,需要远程使用实验室的GPU。但是实验室的服务器没有直接暴露在公网上,所以选择ssh端口转发的方式连接,更有安全性

服务器端配置

第一步,在服务器端安装jupyter notebook,此处不再赘述。
第二步,生成jupytert notebook的配置文件

jupyter notebook --generate-config

第三步,生成加密的密码,使用命令

jupyter notebook password

两次确认后,密码会被保存到~/.jupyter/jupyter_notebook_config.json
接下来修改配置jupyter notebook相关的配置文件
sudo vim ~/.jupytet/jupyter_notebook_config.py

重要的配置如下,

c.NotebookApp.ip='localhost'   #想使用网站直连,要修改为0.0.0.0  
## 本地访问目录, 不设置的话就是启动命令所在的目录
c.NotebookApp.notebook_dir = '$HOME/jupyter_data' 
## 是否需要自动弹出浏览器,服务器端一般不需要
c.NotebookApp.open_browser = False    
c.NotebookApp.port = 9999    # 为了安全性,应该修改

接下来将jupyter notebook转为后台运行
使用命令nohup jupyter notebook > jupyter.log 2>&1 &在后台启动

本地通过ssh端口转发连接notebook

在终端中输入如下命令

ssh -N -f -L localhost:8888:localhost:9999 remote_name@host_ip

其中, -N 告诉SSH没有命令要被远程执行; -f 告诉SSH在后台执行; -L 是指定port forwarding的配置,远端端口是9999,本地的端口号的8888

在启动命令之后,可以在本地浏览器输入http://localhost:8888/来访问
搞定!

发布了4 篇原创文章 · 获赞 3 · 访问量 88

猜你喜欢

转载自blog.csdn.net/XNMZDXWH/article/details/104561742