本地使用远程服务器的jupyter notebook
本文参考了 link,并做了适合自己的修改。
远程服务器端
-
生成jupyter notebook配置文件(终端输入命令)
jupyter notebook --generate-config
-
配置密码 (终端打开ipython/python,输入两行命令)
from notebook.auth import passwd
passwd()input自己想要设置的密码,之后会自动返回一个密码序列,复制下来,第四步用
-
配置密码生成ssl证书(最后需要用https登录jupyter), 进入想要保存证书的目录内,粘贴以下命令
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem
-
修改jupyter配置文件
vim ~/.jupyter/jupyter_notebook_config.py
对以下几行做如下修改:
c.NotebookApp.password=u'sha1:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' // (注:XXXXXXXXXXXXXXXXXXXXXXX 为第2步中生成的密码序列) c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem' c.NotebookApp.keyfile = u'/absolute/path/to/your/certificate/mykey.key' //(注:为第3步中生成的mycert.pem和mykey.key两个文件的绝对路径,可用pwd查看) c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False c.NotebookApp.port = 8889 //自己可以设定成别的
:x 或者 :wq! 保存并退出
-
在服务器上运行jupyter Notebook
nohup jupyter notebook --no-browser --port=8888 --ip=0.0.0.0 > /usr/local/myout.log 2>&1 &
nohup不挂断的运行,可以使命令永久运行下去,和用户终端没有关系,关闭终端不会影响它的运行;no-browser是指不在服务器上使用浏览器;port可以设置成任何空闲的端口号(上一步的配置文件中我把默认端口号8888改改为了8889,这里用8888依然可以);ip如果不设置为0.0.0.0我的服务器会报错:OSError: [Errno 99] Cannot assign requested addres;[-u表示无缓冲输出(执行程序后的输出内容)暂时不加-u];>将nohup默认的输出重定向到指定文件;2>&1用来将标准错误2重定向到标准输出1中;&是指在后台运行,和nohup配合使用,使命令永久在后台执行,最后可以用kill -9 进程号 结束程序
终端查看程序进程号
pgrep jupyter
本地端
-
本地和服务器端口映射
ssh [email protected]_ip -L127.0.0.1:8000:127.0.0.1:8888
username就是在服务器上开设的用户名,server_ip就是服务器的IP,至于“-L127.0.0.1”中为什么是127.0.0.1我也不太清楚(L和127之间没有空格),然后就是将本地的8000端口映射到服务器端的8888端口,也就是jupyter notebook使用的端口
-
本地浏览器打开服务器上的Jupyter Notebook
在本地的浏览器里输入https://127.0.0.1:8000,回车,自动跳转到输入密码页面,输入第2步中自己设置的密码(注意不是返回的那个密码序列),就可以打开服务器上的Jupyter Notebook了,开始使用吧!
推荐阅读
-
Jupyter notebook在mac:linux上的配置和远程访问的方法
-
python使用socket连接远程服务器的方法
-
thinkpad x200 7457 使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
-
【SQLServer】使用T-SQL访问远程数据库:openrowset 和 openquery 以及连接服务器的创建
-
使用本地电脑远程访问服务器jupyter
-
Python使用paramiko连接远程服务器执行Shell命令的实现
-
使用链接服务器执行远程数据库上的存储过程_MySQL
-
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
-
Jupyter notebook远程登陆服务器
-
使用 Python ssh 远程登陆服务器的最佳方案