远程访问服务器的 Jupyter
前言
Jupyter notebook 是一个非常好用的工具,如果你拥有一台云服务器,那么你就可以通过浏览器访问你的私人 Jupyter notebook,在任意一台没有 Python 环境的机器上运行它。
准备工作
这里默认你已经安装了 Anaconda,如果你没有安装,请先安装 Anaconda,这也是比较便利的选择。具体的安装过程不在赘述,一直下一步就好。
你也可以通过 清华镜像源 找到你需要的版本
代码语言:javascript复制wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.11-Linux-x86_64.sh
bash Anaconda3-2021.11-Linux-x86_64.sh
安装完记得配置环境变量 /etc/profile
远程访问 Jupyter
生成配置文件
代码语言:javascript复制jupyter notebook --generate-config
生成密码
打开 ipython,创建一个密文的密码
代码语言:javascript复制ipython
代码语言:javascript复制from notebook.auth import passwd
passwd()
你应该可以得到类似下面的输出:
代码语言:javascript复制root@emoryhuang:/# jupyter notebook --generate-config
Writing default config to: /root/.jupyter/jupyter_notebook_config.py
root@emoryhuang:/# ipython
Python 3.9.7 (default, Sep 16 2021, 13:09:58)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.29.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'arg********rgon2i**************QOj iQNG1K**************dhsYi6YPAQ'
In [3]:
请将输出的密钥保存,后面要用到
修改 Jupyper 配置文件
代码语言:javascript复制vim ~/.jupyter/jupyter_notebook_config.py
加入以下内容:
代码语言:javascript复制c.NotebookApp.ip = '*' # 设置所有ip皆可访问
c.NotebookApp.password = u'...刚才复制的那个密文' # 刚才生成的密钥
c.NotebookApp.open_browser = False # 禁止自动打开浏览器
c.NotebookApp.port = 3333 # 随便指定一个端口
c.NotebookApp.allow_root = True # 允许root身份运行jupyter notebook
# ssl 配置
# c.NotebookApp.certfile = u'通向证书的绝对地址/mycert.pem'
# c.NotebookApp.keyfile = u'通向密钥的绝对地址/mykey.key'
记得打开对应的端口
启动 Jupyter notebook
代码语言:javascript复制jupyter notebook
远程访问
之后,你便可以通过浏览器访问 http://your_remote_ip:3333/ ,这个地址就是你的 Jupyter notebook 的地址。
如果你想要在关闭连接时也开启 Jupyter notebook, 可以输入以下命令:
代码语言:javascript复制nohup jupyter notebook
如何关闭?
查看正在运行的和 jupyter 有关的程序:
代码语言:javascript复制ps -aux | grep jupyter
找到对应的 PID
代码语言:javascript复制kill -9 PID
参考资料
- 远程访问 jupyter notebook