欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

利用内网穿透搭建Jupyter lab远程服务器

程序员文章站 2022-05-28 23:31:05
...

主要流程

  1. 首先通过 conda 安装完成基础的环境配置, 包括python, jupyter, etc…

  2. 配置jupyter的密码,作为简单的安全保护

# 输入如下命令,根据命令提示进行操作
$ jupyter notebook password
Enter password:  ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json
  1. 在terminal中启动Jupyter服务器,默认会打开 8888端口
#设置jupyter lab 从任意地方登录 (0.0.0.0 表示从任意地方)
$ jupyter lab —ip =0.0.0.0
#默认打开8888端口
  1. 内网穿透,将8888端口转发至公网; 使用工具localtunnel
# lt是内网穿透工具localtunnel的命令,具体配置参见localtunnel 网站教程
$ lt —subdomain yywxxr —port 8888
# 终端会显示出一个网站链接,这时外网的浏览器打开这个链接,
# 就可以任意地方远程操作本地的Jupyter lab

其他tips

  1. 让程序后台运行,不会被打断:
# 在运行localtunnel时候,搭配使用nohup 和 & ,可实现后台永久运行。
$ nohup lt —subdomain yywxxr —port 8888 &
  1. 内网穿透工具列举,使用较为简单方便,具体使用规则可以前往官网。其中ngrok 和coplar需要下载客户端使用,因此更加稳定,不会掉线,为了稳妥起见,可以同时开两个内网穿透工具。具体如下:

    ngrok

  • 直接使用,类似于使用localtunnel。 经过实测,ngrok的http转发很卡:
# 可以直接转发jupyter的网页端口,功能和localtunnel的类似。
#ngrok 可以添加-auth验证保护,此处要求远程登录用户需要输入
#用户名:abcd, 密码:1111, 才能进入网页访问jupyter
# region: us; eu; ap: asia pqcific singapore; au: australia
$ ./ngrok http -auth='abcd:1111' -region=eu 8888
  • 采用tcp转发模式,这样可以远程ssh登录服务器,再进行后续的操作:
# 将本地ssh的22端口进行转发,注意:ssh默认端口为22,为了安全,此处可以更改ssh端口
# 方法参见[vps安全防护](https://zhuanlan.zhihu.com/p/26282070)
$ ./ngrok tcp -region=eu 22

coplar
这个和ngrok是一模一样的软件,操作命令几乎一样。

localtunnel
https://localhost.run
serveo.md

  1. 因为此时本机的ip地址被暴露在了公网中,所以需要对计算机的防火墙做一定配置,常见的工具有 ufw,还有ssh端口修改,具体参见:
    ufw配置
    vps安全防护