使用场景
在本地打开服务器上的 jupyter notebook 改文件(代码)
步骤
- 远程连接服务器(如用 ssh),在终端输入以下命令生成默认配置文件:
jupyter notebook --generate-config
- 生成访问密码(token),终端输入ipython,设置你自己的jupyter访问密码。记住最后输出的
sha1:xxxxx
这个字符串要复制下来,等会儿用
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: ## 你设定的密码
Verify password: ## 确认密码
Out[2]: 'sha1:xxxxxxxxxxxxxxxxx'
- 修改./jupyter/jupyter_notebook_config.py 文件。如果在终端访问,可以使用 vim 打开该文件
vim ~/.jupyter/jupyter_notebook_config.py
。打开以后,里面的内容是服务器上 jupyter notebook 的一些基本配置,全部都有注释,我们现在需要做的是找到如下几行,去掉注释并修改:
c.NotebookApp.ip='*'
c.NotebookApp.password = u'刚才复制的那个密文'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
c.NotebookApp.allow_remote_access = True
- 在服务器上启动 jupyter notebook,然后在本地的浏览器上输入
http://服务器ip:8888/
,要注意,这里的 IP 是服务器 IP,不是输入 jupyter notebook返回的那个 IP,因为返回的 IP 是服务器本地localhost 对应的 IP (我开始一直输返回的 IP 还想着为什么失败🤦) - 到现在你应该能打开服务器上的 jupyter notebook 了,输入你刚开始设的密码即可访问服务器上的文件了。
- 如果本地打不开服务器上的 jupyter notebook,一个可能的原因是服务器未开放上述端口。
解决方法,以 ubuntu 为例
打开防火墙:sudo ufw enable
打开想要的端口ufw allow 8888
(与上述端口保持一致)