本地浏览器打开远程服务器上的Jupyter Notebook

阅读: 评论:0

文章目录

  • 一、配置过程
  • 二、其他需求
    • 后台运行Jupyter
    • 端口映射

实验环境及需求:远程服务器配置了 Jupyter Notebook,本地电脑没有相关的环境,想要在服务器端启动 Jupyter Notebook,然后直接从本地浏览器打开进行操作。

一、配置过程

1. 登录远程服务器

2. 生成配置文件

>> jupyter notebook --generate-config

执行上面的命令,会生成 ~/.jupyter/jupyter_notebook_config.py 配置文件

3. 生成 Jupyter 密码

>> python

from notebook.auth import passwd
passwd()

首先输入 python 命令进入 python 环境,然后输入上面的代码设置密码。输入密码之后会再次进行确认,完毕后输生成的密钥。这里提前将密钥全部复制下来(包括单引号)备用。

Enter password:
Verify password:
'argon2:$argon2id$v=1$m=1024,t=0,p=0$RUJxA2Za9'  # 生成的密钥

4. 修改配置文件

>> vim ~/.jupyter/jupyter_notebook_config.py

使用 vim 打开配置文件,看到配置文件里全是被注释的内容,可以找到下面修改内容的对应行,取消注释后进行修改。但是我为了方便,就直接在配置文件开头添加下面的内容,两种做法效果是一样的。

c.NotebookApp.ip = '*' 
c.NotebookApp.password = u'argon2:$argon2id$v=1$m=1024,t=0,p=0$RUJxA2Za9'  # 这里u之后就是第3步生成的密钥
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8891   # Jupyter端口,可以自定义
c.NotebookApp.allow_remote_access = True

5. 启动 Jupyter

jupyter notebook

启动 Jupyter 之后我们可以在 terminal 里看到运行情况和运行日志。

6. 打开本地浏览器,运行 Jupyter

IP:Port

在浏览器地址栏输入 服务器IP:Jupyter端口号,这里的端口号就是在第 4 步配置文件 c.NotebookApp.port 指定的端口。

然后就可以正常访问啦~

二、其他需求

后台运行Jupyter

1. 后台运行 Jupyter

使用命令 jupyter notebook 启动 Jupyter,需要保持本地 terminal 一直打开,如果关闭 terminal 会切断本地和服务器的连接。如果我们觉得没必要在 terminal 里一直查看 Jupyter 运行情况和运行日志,可以通过后台运行 Jupyter 的方式达成目的。通过后台运行,即使关闭 terminal 或者 ssh 断开连接,本地也能通过 IP:Port 正常访问服务器端的 Jupyter。

方法:使用 nohup 命令后台运行 Jupyter

nohup jupyter notebook &

nohup 的用途是忽略 hangup 信号运行程序,程序的输出默认重定向到当前文件夹下的 nohup.out 文件中,如果要查看 Jupyter 的日志文件,可以用 vim 打开 nohup.out 文件进行查看。通过 nohup COMMAND > FILE 可以修改输出文件定位到指定的文件 FILE 中。& 的作用是在后台运行程序

输入以上命令后,终端有如下输出:

[1] 后面的 898214 就是 Jupyter 运行的 PID,后期可以通过这个 PID 关闭进程。‘nohup.out’ 是运行日志文件,保存在当前目录下。

2. 关闭后台运行的 Jupyter

要关闭通过 nohup 启动的 Jupyter,可以通过 ps -aux | grep jupyter 命令找到正在运行的 Jupyter 的 PID,然后通过 kill -9 pid 的方式关闭运行即可。

ps -aux | grep jupyter
kill -9 623370 

下面红框内的数字即进程的 PID:

端口映射

有些服务器可能只开放一个对外的端口,即访问服务器的端口。这样直接在本地访问仍然会显示无法连接,可以通过端口映射来解决。

本地连接服务器时,通过如下命令:

ssh -L 8891:localhost:8891 UserName@IP -p ServerPort

-L 后面是 Jupyter 的端口号(这里是我设置的端口 8891), UserName 是登录服务器的用户名,IP 是服务器 IP,ServerPort 是服务器端口号。

这句命令表示把本地的端口 8891 映射到远程服务器的端口 8891 上,这样便可以通过本地的 8891 端口来访问远程主机了。

本文发布于:2025-02-07 02:53:00,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/1738868016577597.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:器上   浏览器   Notebook   Jupyter
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23