搭建远程jupyter lab服务器,并在本地浏览器以 remote_ip:port 形式连接

如何远程访问jupyter

这个其实可以玩的很花,比如用nginx代理,用一个域名来访问jupyter,但是我这里只做一个基本的远程登录,即通过浏览器使用 remote_ip: port 来实现远程访问

使用screen
sudo apt install screen 

建议jupyter在screen下打开,这样关闭shell终端后也能继续运行程序


screen -S jupyter-screen #创建一个screen
screen -r jupyter-screen # 登录进去
# Ctrl + a +d 离开screen命令
使用 jupyter lab
conda install jupyter-lab

安装完毕后需要进行一系列设置

设置密码

不要再傻乎乎的用什么ipython复制粘贴来做,我的天!jupyter早就实现了一键修改密码。

jupyter notebook password # 设置密码,因为是公网暴露,所以密码还是复杂点好
其他设置
jupyter notebook --generate-config
# 通常config文件为 ~/.jupyter/jupyter_notebook_config.py
sudo vim  ~/.jupyter/jupyter_notebook_config.py

对该config文件进行编辑:

c.NotebookApp.ip='*' # 允许所有ip访问
c.NotebookApp.open_browser = False # 不打开浏览器
c.NotebookApp.port =8872 #指定端口,不要用默认8888端口!公网上不用默认端口是好文明
c.NotebookApp.allow_remote_access = True #允许远程机器访问

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!注意

请确定你每次要将哪个目录作为jupyter的工作目录

比如/home/username/jupyter_project 这个目录你要自己定

c.NotebookApp.notebook_dir = '/home/username/jupyter_project'

请一定要填写这个,不然打开jupyter会显示404

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!注意


后台执行

OK我们已经设置好了jupyter,现在进入screen里面运行

nohup jupyter lab -p 8872 & #后台执行
杀死jupyter:
netstat -nlp | grep 8872 # 查看运行在8872端口的进程id

或者你也可以

ps -a

直接找到jupyter进程的id号

kill -9 <jupyter_id>
开启服务器端口

如果你在一个服务器上开启jupyter,可能你需要做防火墙设置

#开放8872端口
sudo firewall-cmd --zone=public --add-port=8872/tcp --permanent
vscode 连接jupyter服务器
  1. 首先安装jupyter插件,直接搜索安装即可

  2. 创建一个ipynb文件

  3. 连接jupyter 服务器(右下角)

    image-20211010170242287

输入http://remote_ipaddress:8872

再输入密码

愉快使用vscode进行写代码


更新,jupyter lab开机自启动

参考 :https://bbs.huaweicloud.com/blogs/100595


更新:用systemctl来做自启动

https://www.jianshu.com/p/93b6a62a8922

原文地址:https://www.cnblogs.com/kalicener/p/15389881.html