前言:
原先我一直不知道还可以有这种骚操作,真是孤陋寡闻了╮(╯﹏╰)╭。今天偶然看到了能用这种方法,简直给我沉重的一击啊,赶紧就进行实现了。同时我也打算记录一下过程,一是怕自己忘记,二是因为我在网上搜到了很多,但是都很粗糙,很多点还漏了,浪费了我很多的时间。好了,不多bb,开始干。。。
第一步:
首先,你要在服务器上装好jupyter notebook,这里我推荐直接装Anaconda,非常方便。
第二步:
生成配置文件:jupyter notebook --generate-config
第三步:
生成自己设置的密码:import IPython;print(IPython.lib.passwd()) 然后敲回车,输入你自己想要的密码,再确认输入一遍就可以了。同时会生成一个密码序列,记得要复制下来,后面要用到。
第四步:
生成ssl证书:openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem 要记住他的路径,可以先用ls查看有没有生成两个文件,后面使用pwd查看他的路径,后面也要用到。
第五步:
接下来就是关键的步骤了,但是还是很简单,使用命令打开配置文件:vim ~/.jupyter/jupyter_notebook_config.py 添加几行配置:
c.NotebookApp.password = u'sha1:XXXXX'(ps:刚刚第三步生成的密码序列,sha:也要加进去) c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem' c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key'(ps:刚刚第四步生成的证书)
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 9999(ps:端口随便设置,要空闲的)
第六步:
在服务器上运行jupyter notebook即可。如果是用root用户就执行jupyter notebook --allow-root,这样就不会报错了。
第七步:
在本地上浏览器上访问:https://your_domain_or_IP:9999 切记,一定要加https,不然会报错。
最后结果展示:
完结撒花!!!!!!!!!!!!!!!
ps:果然又界面化的还是舒服啊,怎么早没发现呢╭(╯^╰)╮╭(╯^╰)╮╭(╯^╰)╮╭(╯^╰)╮
遇到的新问题:
我在新建一个python3的jupyter notebook时,发现会报Permission deni的错误。这是权限的问题,只要输入sudo chmod 777 .local/share/jupyter就可以解决这个问题了,如果发现.local/share下没有jupyter这个文件夹,就新建一个即可。再实行sudo命令,最后在重启jupyter notebook。
新添(云服务器的配置):
最近使用了阿里云服务器,步骤都完整的走一遍了,就是最后在本地上不去网,搞了一下午,找了好多资料才解决,下面我来具体的说一下:
因为阿里云为了安全起见,默认只开放了22、80等几个端口。因此我们在jupyter中设置的端口会被屏蔽掉,所以要在安全组配置中进行配置,将此端口开放。
设置过程:云服务器管理控制台》云服务器ECS》网络和安全》安全组》配置规则》添加安全组规则
授权对象填 0.0.0.0/0 。表示这个端口开放给所有ip。
再次更新(19.01.03)
今天我用打算安装pytorch。然后遇到了一些问题,记录一下:
首先:要为pytorch创建一个虚拟环境,这样避免跟其他环境(如:tf)互相冲突。执行
conda create -n pytorch python=3.6
这样就创建了一个名称为pytorch的虚拟环境,其中python版本为3.6。然后我们要激活这个环境,输入命令
source activate pytorch
激活后,会看到前面会显示pytorch
但是这样安装完后,我在导入的时候就会报错:
找了好多的资料,还是没有解决了,最后一个大佬给了我解决方法,再此非常感谢,给出大佬的链接大佬很强。
然后要继续执行:
conda install ipykernel
然后把jupyter notebook的环境写进去:
python -m ipykernel install --user --name pytorch --display-name "pytorch "
然后打开jupyter notebook;
最后再打开ipybnb文件后,点击kernel-->change kernel
大功告成,完结撒花。。。。
又一次更新(2019.04.19)
今天申请了学校的服务器,我按照前面的步骤都弄好了,但是在本地上访问的时候就显示,无法访问该网页,10.*.*.*拒绝了你的访问请求,这可真是太烦了,眼看就要成功了。。。
然后我就又开始拼命的折腾了,后面发现是防火墙的问题,端口都不开放出来的,所以你是访问不了的,那我就拼命的想开放一下端口,但是不行啊,不是sudo权限感觉就是一条咸鱼了,啥也干不了。。。。浓浓的绝望。
后面突然看到能用ssh端口转发映射,终于可以使用了,开心,有两种方案:
1.使用以下命令
ssh -N -f -L localhost:8888:localhost:7000 -p 29 lhw@202.118.239.147
其中前面一个localhost就是代表你本机的,后面一个localhost就是代表服务器的,端口号就是你要映射的,后面就是登陆服务器的格式。不多说了,这样玩之后,然后打开jupyter notebook,然后再本地浏览器输入https://localhost:8888就能访问了。
2.使用xshell的隧道设置,这个很方便,建议采用这个方法
好了,两种方法都介绍完了,撤退~~~