Windows远程连接ubuntu16.04下jupyter notebook
ipython notebook是一个基于浏览器的python数据分析工具,使用起来非常方便,具有极强的交互方式和富文本的展示效果。jupyter是它的升级版,它的安装也非常方便,一般Anaconda安装包中会自带。安装好以后直接输入jupyter notebook便可以在浏览器中使用。但是它默认只能在本地访问,如果想把它安装在服务器上,然后在本地远程访问,则需要进行如下配置:
安装jupyter
pip install jupyter //本人是使用这条命令
或者
conda install jupyter //如果你装了anaconda,可以用这个
登录远程服务器
本人使用的是MobaXterm
生成配置文件
$jupyter notebook --generate-config
生成密码
打开ipython,创建一个密文的密码:
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:ce23d945972f:34769685a7ccd3d08c84a18c63968a41f1140274'
修改默认配置文件
$vim ~/.jupyter/jupyter_notebook_config.py
进行如下修改:
c.NotebookApp.ip='*'#允许所有IP访问
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False#这条命令是让它不要打开浏览器(这个浏览器是服务器上的浏览器,超级卡)本人亲测无效
c.NotebookApp.port =8888 #随便指定一个端口
启动jupyter notebook:
$jupyter notebook
我自己运行时这里就出现问题,它会出现报错,并且服务器上的火狐浏览器打开了,超级卡(压根就没法动)。只有通过向日葵到服务器上才没有问题。我猜测是服务器防火墙设置的问题,因为当我用ssh联通后,火狐浏览器打开后就没那么卡了(还是有点卡,写代码会非常不方便)。
远程访问
此时应该可以直接从本地浏览器直接访问http://address_of_remote:8888
就可以看到jupyter的登陆界面。
(以上都是从各个博客中摘录的,但我估计是防火墙的问题,我就是打不开)
远程ssh访问
1. 在远程服务器上,启动jupyter notebooks服务:
jupyter notebook --no-browser --port=8889#用这种方法浏览器就不会出来了
2.在本地机器的Terminal中启动SSH:
ssh -N -f -L localhost:8888:localhost:8889 remote_user@remote_host
其中: -N 告诉SSH没有命令要被远程执行; -f 告诉SSH在后台执行; -L 是指定port forwarding的配置,远端端口是8889,本地的端口号的8888。remote_user@remote_host 用实际的远程帐户和远程地址替换
这里的密码是服务器的密码
3. 输入地址:
打开浏览器,输入地址:http://localhost:8888/(这个是超链接,如果上面的都解决了,直接点击这个超链接就可以了。)
4.输入密码:
这里是最坑的,我输入了我们服务器的密码,输入了sha1:ce23d945972f:34769685a7ccd3d08c84a18c63968a41f1140274,发现都不行,最终需要输入之前设定密码那步中自己输入的密码才行。(In[2]和out[2]之间的那一步)但是很多博客上都说要输入sha1:ce23d945972f:34769685a7ccd3d08c84a18c63968a41f1140274密匙。
文件夹地址:
打开后发现,找不到要跑的程序地址。解决方法很简单,先在mobaxterm中先cd到目标文件夹就可以了。
结束语:
进过本人一上午的不懈努力,终于解决了这个问题,可惜本人jupyter notebook完全不会用,看来未来的路还很常。
路漫漫其修远兮,吾将上下而求索。《离骚》