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,

相关推荐
叼烟扛炮15 分钟前
Linux 学习笔记(五十八):IO 多路复用封神——epoll 底层原理揭秘
linux·运维·服务器·网络·笔记·学习·php
叼烟扛炮24 分钟前
Linux 学习笔记(五十一):数据链路层与 ARP 协议——局域网寻址与黑客骗局
linux·网络·网络协议·php·tcpdump
承渊政道6 小时前
Open-LLM-VTuber本地部署教程:大模型、语音交互、Live2D与远程访问
大模型·内网穿透·数字人·cpolar·语音交互·open-llm-vtuber
vipxieliang7 小时前
语言对比卡:PHP vs Go vs Java 的优缺点、适用场景与「为什么选 PHP」
java·go·php
东鹏特饮20 小时前
系统运维(传统/通用运维)面试题
开发语言·php
多客:duokelijie1 天前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
从琳开始9891 天前
网络原理入门(二)------OSI七层模型?TCP/IP五层(四层)模型原来是这样的
java·网络·tcp/ip·java-ee·php
BingoGo1 天前
PHP 标准库的价值远不止少写几行代码
后端·php
JaguarJack1 天前
PHP 标准库的价值远不止少写几行代码
后端·php·服务端
evoxwht2 天前
给 CRMEB V8 接一个 S3 兼容存储驱动
php