Mac远程访问linux服务器上Jupyter-Notebook

由于最近在跑别人的实验,源码是用jupyter-notebook写的,实验跑的时间比较长,所以就想代码扔到实验室的服务器上,迫于无界面,所以采用本地浏览器访问服务器jupyter-notebook服务的方式来进行,记录一下配置过程:

1、安装

​ 在终端使用sudo pip install jupyter notebook

2、配置

​ 本来安装完jupyter notebook之后,就可以启动,但是启动之后给的token是localhost,无法进行远程访问,所以需要进行额外的配置:

​ a、在linux服务器上创建 ~/.jupyter/jupyter_notebook_config.py 配置文件,使用命令 jupyter notebook –generate-config –allow-root (由于我用的服务器为root用户,所以需要在后面注明–allow-root)

​ b、执行成功后,会出现以下信息:Writing default config to: /root/.jupyter/jupyter_notebook_config.py。这时我们可以用 ls -l查看是否存在.jupyter这样一个隐藏文件夹,存在即ok。

​ c、生成远程访问的密码:我这里使用的手动生成,在终端输入ipython打开ipython,执行以下内容:

1
2
3
4
5
In[1]: from notebook.auth import passwd
In[2]: passwd()
Enter password: ****
Verify password: ****
Out[2]: 'sha1:xxxxxxxxxxxx'

​ 将’sha1:xxx….’这串密钥复制,执行quit退出ipython

​ d、修改配置文件:在终端执行 vim ~/.jupyter/jupyter_notebook_config.py,修改以下内容(该内容原本应该是被注释掉了,可以找到之后取消注释并修改,我就懒得找了,直接将以下内容复制进行保存)

1
2
3
4
c.NotebookApp.ip='*'
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8887 #可自行指定一个端口, 访问时使用该端口

​ 这里注意一点,对于ip这项,我刚开始写的*,最后开启服务的时候url给的是http://ubuntu:8887/,很明显出了错误,这个ip应该写成自己服务器的ip地址,然后保存。

3、启动jupyter notebook

​ 修改完上述配置之后,在服务器上运行 jupyter-notebook –allwo-root开启服务即可(注意这里是jupyter-notebook不是jupyter notebook,中间是有连接的,这也是和mac terminal不同的地方)

4、远程连接

​ 启动服务器上的jupyter,则可以使用 ip:port 的方式进行远程连接了,连接输入之前自己设置的密码即可。