jupyter notebook是一款非常方便的“编辑器”,使用jupyter notebook调试代码非常方便。一般都是使用本地的jupyter notebook,这里简要介绍如何在Windows本地流浪器中打开远程服务器jupyter notebook。
1、在本地机器上进行 ssh 端口映射
在本地(git bash)命令行中输入以下命令进行端口映射。这里使用的是git bash,别的没试过。
ssh -p 21 -L 8008:127.0.0.1:8888 remote_user_name@remote_server_ip
其中,
-
-p 21
表示远程访问的端口,有的可能不是21,需要换成端口22表示ssh而不是ftp -
-L 8008:127.0.0.1:8888
表示将远程服务器的 Jupyter Lab 端口 8888 映射到本地机器 127.0.0.1 的 8008 端口。
2、在远程服务器上运行命令
如果你也使用的是git bash的话,输入步骤(1)中的命令后已经远程登陆了服务器,远程登录后接着在命令中输入以下命令来启动jupyter notebook:
jupyter lab --ip=0.0.0.0 --no-browser
其中,
-
--ip=0.0.0.0
表示任意 IP 访问,也就是说可以通过远程的浏览器访问; -
--no-browser
不启动本地 (指服务器端) 浏览器。
如果命令执行成功的话,浏览器会返回一串地址,其中有一个token,如下:
http://remote_server_name:8888/?token=b734514c7d82ac3f4c550280c4bab2f495474fb9dcad026d&token=b734514c7d82ac3f4c550280c4bab2f495474fb9dcad026d
复制下这个token,非常有用。
3、在windows本地浏览器打开jupyter notebook
在本地浏览器中输入127.0.0.1:8008
打开页面,将上面复制的token输入到输入框中。值得注意的是,除了上面会出现一个token输入框,下面还会有一个输入框,可以在那里输入token,并使用简单的密码以后进入就会非常方便了。这里由于第一次进入时没有截图就没留到图了。
4、jupyter notebook简单使用
进入jupyter notebook后会发现这和平常用的还是有一点小小的区别的,可在file选项中打开多个notebook:5、在jupyter notebook中切换虚拟环境
一般在服务器上我们会使用多个conda环境,在服务器上进行如下几步简单安装配置便可以在jupyter notebook中也能使用虚拟环境了。
# 1. conda安装conda_nb
conda install nb_conda
# 2. 安装ipykernel模块
pip install ipykernel
# 3. 将环境添加到ipython的kernel中
python -m ipykernel install --user --name py36 --display-name py36
经过上面的配置后,重启进入jupyter notebook,点击右上角的python便可以选择不同的虚拟环境了。
意外情况
有些服务器可能只开放一个对外的端口,但是我们通过终端访问服务器需要一个对外端口,开启jupyter服务又需要一个端口,这样就需要同时占用两个端口才行。举个栗子,服务器为了保证安全性只开放了一个对外的端口,22号端口,我们使用终端通过22号端口登录到服务器上打开jupyter,jupyter创建的端口是8888号,但是服务器没有对外开放8888号端口,所以即使打开了jupyter,外面也无法正常访问。如果把jupyter的端口号改为22号,由于我们登录终端的时候正在占用22号,所以jupyter就会提示端口已被占用,无法创建。网上有很多教程说可以通过修改防火墙设置来开放端口,修改防火墙设置一般都需要管理员权限,但是通常我们使用服务器的时候大多数情况下是不可能有管理员权限的,这时候我们可以使用端口映射来解决这个问题。
首先登录终端打开jupyter,这时根据配置信息jupyter占用的是8888端口。
- 然后我们在本地上使用命令行输入:
ssh -N -f -L localhost:9999:localhost:8888 -p 端口号 username@远程地址
例如:
ssh -N -f -L localhost:9999:localhost:8888 -p 22 yzr@202.48.29.23
这里说明一下:locahost:9999是指本地地址,localhost:8888是指远程地址,其中8888是jupyter notebook中设置的端口号,-p 22是指登录服务器的端口号 后面是用户名和服务器ip。
- 打开浏览器,输入
localhost:9999
就可以看到jupyter notebook的登录界面了
这里原理上就是将服务器上的8888端口映射到本机的9999端口。