前提:
- 远程服务器:CentOs 7
- 本地计算机:Ubuntu 16.04
步骤:
1. 远程服务器安装anaconda:
- 可以去官网下载合适版本的anaconda,或使用一下脚本(可修改版本号):
wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
- 运行安装向导:
bash Anaconda3-5.2.0-Linux-x86_64.sh
- 确认是否安装成功
conda --version
2. 远程服务器配置jupyter
- 现在命令行里输入
ipython
进入 ipython环境
然后输入密码,连续输入2次,会输出一个哈希值,如下例所示:from notebook.auth import passwd passwd()
sha1:26fe880a60ee:c466e27d9cc2befadd3b72bfcbafce1a07703a27,复制此值 - 进入安装目录:
cd /home/user-name/anaconda3/etc/jupyter
执行命令:jupyter notebook --generate-config
(该命令会产生文件:home/user-name/.jupyter/jupyter_notebook_config.py) - 然后再编辑产生的文件:
vi home/user-name/.jupyter/jupyter_notebook_config.py
在最后面加入:c.NotebookApp.ip = '*' # 允许访问此服务器的 IP,星号表示任意 IP c.NotebookApp.password = u'sha1:xxx:xxx' # 之前生成的密码 hash 字串, 粘贴进去 c.NotebookApp.open_browser = False # 运行时不打开本机浏览器 c.NotebookApp.port = 12035 # 使用的端口,随意设置 c.NotebookApp.enable_mathjax = True # 启用 MathJax c.NotebookApp.allow_remote_access = True #允许远程访问
- 最后再启动
jupyter notebook
一般来说,在本地计算机浏览器上将红框位置对应的127.0.0.1换成远程服务器的地址即可访问,但是由于远程服务器防火墙的作用,在本地浏览器上无法打开,此时最简单的方法是在本地建立一个ssh通道:ssh -p remote_port remote_user@remote_ip -L127.0.0.1:1234:127.0.0.1:12035 # -L表示本地映射转发
-L 表示本地映射转发,选项值代表ssh客户端和服务端转发的端口,这里选取1234为本地jupyter监听端口。remote_user@remote_ip 用实际的远程帐户和远程地址替换
这样本地浏览器输入127.0.0.1:1234即可,1234可以自定义端口选取。选取1024-65535之间的并且尚未使用的端口号即可,此时登陆要求输入密码即可
3. jupyter使用anaconda虚拟环境
本机测试不能使用nb_conda
,会造成conda损坏
首先要有一个虚拟环境,并激活它,这里虚拟环境名称为py3tf14, python版本指定为3.6
创建虚拟环境:
conda create -n py3tf14 python=python3.6
激活
conda activate py3tf14
之后要安装ipykernel
使用pip或者conda都行
pip install ipykernel
python -m ipykernel install --user --name=py3tf14#那个环境的名字