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

发布于:2024-12-06 ⋅ 阅读:(23) ⋅ 点赞:(0)
写在前面

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

1.jupyter lab远程访问配置

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

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

jupyter lab --generate-config

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

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

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文件

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

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(有其他更多的内网穿透软件,也可以使用其他的)
服务器端配置(这里指的云服务器)

[common]
bind_port = 7000

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

[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服务

# 云服务器
./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,


网站公告

今日签到

点亮在社区的每一天
去签到