(同一ip多台设备)jupyterlab远程访问搭建

jupyter是几乎是我机器学习相关最重要的开发工具,有时候打比赛需要用到较高配置的电脑,有资源但是总是要守着主机,也不是很方便,所幸有jupyterlab,几乎与jupyter几乎一样的体验,但可以远程访问,非常方便。

由于不是买的云端服务器(拥有唯一外网ip地址),是多台电脑连着同一台路由器(多台地址共享同一外网ip),所以我需要通过路由器的端口映射功能将主机开放的jupyterlab端口号映射到路由器上就可以访问了。

我是用的是unbtun系统,一般使用的python3相对应的python版本 用pip3来安装包。
自带的pip一般指向linux自带的python2版本
可通过以下的第一行命令来完成pip3的安装
然后安装jupyterlab

# 首先安装pip3
sudo apt install python3-pip
# 通过清华源下载可以高速下载 
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple jupyterlab

安装成功后,打开ipython交互,来配置自己jupyterlab的密码
例如设置1234,会hash生成一段字符,复制下来,粘贴到配置文件当中

$ ipython
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
Type "copyright", "credits" or "license" for more information.
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:1e39d24dcd6c:b265321ca0c4cb798888bcb69b0024983a8ac439'

接下来需要修改jupyterlab的配置文件来让外网访问

# 生成配置文件
$ jupyter lab --generate-config
Writing default config to: /home/ubuntu/.jupyter/jupyter_notebook_config.
# 通过vim修改配置文件
$ vim /home/ubuntu/.jupyter/jupyter_notebook_config.py

需要修改以下几项内容
注意修改之后一定要去掉前面的注释,否则无效

# vim编辑 命令模式下,输入:/字符串 可以完成对字符串的搜索
# vim编辑 按i进入插入模式,再按鼠标中键可以粘贴,毕竟密码那么长粘贴更靠谱
# 将ip设置为*,意味允许任何IP访问
c.NotebookApp.ip = '*'
# 这里的密码就是上边我们生成的那一串
c.NotebookApp.password = u'sha1:1e39d24dcd6c:b265321ca0c4cb798888bcb69b0024983a8ac439'
# 服务器上并没有浏览器可以供Jupyter打开
c.NotebookApp.open_browser = False
# 监听端口设置为8888或其他自己喜欢的端口
c.NotebookApp.port = 8888
# 我们可以修改jupyter的工作目录,也可以保持原样不变,如果修改的话,要保证这一目录已存在 
# 工作目录设置为需要root权限的话 在网页会报403的错误
c.MappingKernelManager.root_dir = '/home/ubuntu/.jupyter_run/root'
# 允许远程访问
c.NotebookApp.allow_remote_access = True

开启服务 就可以访问了

# nohup表示ssh终端断开后仍然运行
# &表示允许后台运行
nohup jupyter lab &

如果你在外网能通过ip地址加端口号8888访问,那你已经成功了
如果不行的话,可能是因为设置路由端口映射来找到你这台主机开放的端口号

那我们通过路由器自带的端口映射来完成映射
打开网址192.168.1.1 输入管理员密码登陆,找到虚拟服务器设置,以TP-LINK为例
图片
点击虚拟服务器,点击添加,设置如下,因为
常用服务器无需设置
外部端口随意设置,就是你访问的端口
jupyterlab端口上面设置为8888,图中内部端口是22,改成你的jupyterlab端口8888
ip地址为192.168.1.199 主机的内网地址。

ifconfig -a #这行命令看到的就是你的内网地址

图片
然后可以通过百度ip地址来获得你的路由器外网ip地址
图片
通过浏览器来连接你的jupyterlab

# 现假设你的外网地址查询为12.224.126.111,映射的外部地址18000对应的web网址为
12.224.126.111:18000
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章