jupyter+云服务器+内网穿透=无痛远程jupyter服务

写在前面

为什么心血来潮想起来搞这个jupyter的远程呢?因为前段时间俺出去实习了,本来想着在公司就用todesk远程操控学校的服务器搞搞比赛也行,没成想刚好遇上todesk开始收费加上远程效果实在不够看,大幅度降低写代码体验感。突然前天看群里大佬吹水,突然想到这个方法。网上一搜还真有通过云服务实现jupyter远程访问的贴子,于是花了半天搞成了(道爷,我成了!!)。但是作为一个不懂网络和云服务器的小白,网上的帖子实在太过深奥以至于走了不少弯路,于是就有了这篇帖子!!

1.jupyter lab远程访问配置

首先要知道的是,内网访问 (个人的电脑和访问电脑在一个局域网下面)和外网访问(个人电脑和访问电脑不在一个局域网下面)是不一样的。如果要实现内网访问只要需要按照下述方式修改jupyter lab的远程访问的配置就行(因为 jupyter 本身就支持局域网访问)

1.生成配置文件(这里如果是jupyter notebook可能命令不太一样,可以去查一下)

python 复制代码
jupyter lab --generate-config

这将会生成一个 jupyter_lab_config.py 的配置文件到 ./jupyter 文件夹下

2.设置远程登陆jupyter lab的密码

python 复制代码
jupyter lab password
Enter password:  ****  # 以后通过这个密码可访问
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_server_config.json

输入完成后密码会被记录到~/.jupyter/jupyter_notebook_config.json里面

3.修改~/.jupyter/jupyter_notebook_config.py文件

默认这个文件的配置都是注释掉的,需要删除 #

python 复制代码
c.ServerApp.allow_remote_access = True  # 允许使用远程访问
c.ServerApp.ip = '*'  # 监听所有ip
c.NotebookApp.password = '' # 粘贴jupyter_notebook_config.json文件中生成的密码hash
c.ServerApp.port = 8888  # 默认就是8888,不修改也行

内网访问

这里要明确,做完第一步,修改完jupyter lab的配置,就可以实现内网访问(局域网访问了)

使用ifconfig或ipconfig查看服务器在内网终端ip地址,使用同一个局域网下的电脑,输入xx.xx.xx.xx:8888就可以访问到jupyter lab了

外网访问

准备1:去腾讯云,华为云,阿里云等等去购买一个云服务器

准备2:下载frp(有其他更多的内网穿透软件,也可以使用其他的)

服务器端配置(这里指的云服务器)

c 复制代码
[common]
bind_port = 7000

客户端配置(这里指提供jupyter lab服务的电脑)

python 复制代码
[common]
serverAddr = "x.x.x.x"  # 这里指云服务的IP地址
serverPort = 7000             # 这里要和服务器配置bind_port一样

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8888        # jupyter lab的默认端口就是8888
remotePort = 8889       # 这里是映射到服务端端口(服务器需放行)

然后运行frp服务

python 复制代码
# 云服务器
./frps -c frps.toml  # 如果是linux
frps.exe -c frps.toml  # 如果是win

# 提供jupyter lab服务的本地电脑
./frpc -c frpc.toml  # 如果是linux
frpc.exe -c frpc.toml  # 如果是win

然后使用云服务器的ip地址 + remotePort = 8889 # 这里是映射到服务端端口(服务器需放行)就可以访问了

例如111.111.111.111:8889,

相关推荐
奥格列的魔法拖鞋~13 小时前
Docker-LNMP架构 创建多项目- 单个ngixn代理多个PHP容器服务
nginx·docker·eureka·架构·php·lnmp
皓空揽月14 小时前
php+apache+nginx 更换域名
nginx·php·apache
我不是立达刘宁宇16 小时前
php危险函数,二.assert()[现版本已弃用]
开发语言·php
liulanba20 小时前
NAT 和 PNAT
开发语言·php
nvvas1 天前
PHP imagick扩展安装以及应用
php
Websites1 天前
Hyperf 百度翻译接口实现方案
开发语言·自然语言处理·php·自动翻译
yzx9910131 天前
PHP 开发全解析:从基础到实战的进阶之路
开发语言·php
梦吉网络1 天前
在线进销存系统高效管理网站源码搭建可二开
php·网站搭建
六月闻君2 天前
Jupyter 使用特定的虚拟环境配置
ide·python·jupyter
啊阿狸不会拉杆2 天前
《算法导论》第 24 章 - 单源最短路径
开发语言·数据结构·c++·算法·php