- 使用场景
- 配置流程
- 简化的访问方式
自己的电脑没有GPU或者配置较低,想要使用远程的linux服务器进行深度学习,而且需要jupyter notebook这样的交互式使用方式。
当前有很多教程教大家配置使用jupyter notebook访问远程服务器,但是它们都要求服务器拥有固定的公网ip。可是有些服务器没有固定的公网ip,是通过使用ngrok等反向代理软件通过有公网ip的跳板机访问,所以无法参照那些教程进行配置。
本教程以本地windows电脑和远程Ubuntu服务器为示例,服务器没有公网ip,是通过华为云服务器作为跳板机访问的。
配置流程1.在远程服务器上安装anaconda
这个步骤应该大多人都做过,如果输入conda没有提示command not found即可跳过。
可参考文章 miniconda安装及环境创建(Linux)
2.在远程服务器上安装jupyter lab,并设置密码
安装jupyter lab
pip install jupyterlab
设置密码
jupyter notebook password
然后输入两次想要设置的密码确认。
3.选择一个未被占用的端口,以供jupyter使用。
挑选一个自己喜欢的端口,如7421.使用以下命令查看7421端口是否被占用。
lsof -i:7421
如果没有任何输出结果,证明该端口可以使用。
4.打开服务器上的jupyter
运行以下命令。7421可改成自己选择的端口号,ip=*是指任何ip都可以访问。noteboo-dir=’~/'是指把当前用户根目录当作notebook的工作目录。
jupyter lab --port='7421' --ip='*' --notebook-dir='~/'
可以在该命令之前加上nohup,防止jupyter因为终端关闭而退出。即
nohup jupyter lab --port='7421' --ip='*' --notebook-dir='~/'
这样每次在自己电脑上使用notebook的时候,就不用重新在服务器上打开jupyter了。
5.在本地电脑上使用
打开cmd, 输入命令
ssh -CNL localhost:8888:localhost:7421 [email protected] -p 22
8888是本地电脑jupyter使用的端口,可以任意指定,默认为8888。7421是服务器上jupyter使用的端口。103.200.30.245是访问服务器时使用的ip地址,22是ssh登录的默认端口号。
上述提到的内容除了8888可以使用默认值不更改外,其它值一般都需要根据自己服务器的实际情况更改。
运行命令之后,打开浏览器,输入网址localhost:8888 即可使用jupyter notebook进行远程访问。
首次登录需要填入2中设置的jupyter密码。
如图,点击Notebook下方的python,即可出现我们熟悉的notebook页面。
6.选择自己的python环境
本地打开jupyter之后,发现我们找不到在服务器上安装的anaconda环境。要想选择我们已经安装好的python环境,需要继续在服务器上配置。
首先在服务器上激活我们想要的python环境。比如我们先激活mypythonenv环境
conda activate mypythonenv
然后安装ipykernel
pip install ipykernel
安装完成后运行
ipython kernel install --user --name mypythonenv
mypythonenv是该环境的名字。然后base环境就出现在我们本地的jupyter notebook里了
简化的访问方式在进行第4步,本地电脑上打开时,每次都要打开cmd,输入命令和登录服务器的密码,并且手动打开浏览器输入地址。可以通过使用密钥登录,运行.cmd的方式一步完成。
假设我们本地私钥的文件路径为C:Usersyour_nameDesktopid_rsa
新建一个txt文本文档,输入
start http://localhost:8888/ ssh -CNL localhost:8888:localhost:7421 [email protected] -p 22 -i C:Usersyour_nameDesktopid_rsa
保存,并将文件后缀改为.cmd。以后只需要打开该文件就可以直接d出jupyter notebook了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)