利用内网穿透搭建Jupyter lab远程服务器
程序员文章站
2022-05-28 23:31:05
...
主要流程
-
首先通过 conda 安装完成基础的环境配置, 包括python, jupyter, etc…
-
配置jupyter的密码,作为简单的安全保护
# 输入如下命令,根据命令提示进行操作
$ jupyter notebook password
Enter password: ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json
- 在terminal中启动Jupyter服务器,默认会打开 8888端口
#设置jupyter lab 从任意地方登录 (0.0.0.0 表示从任意地方)
$ jupyter lab —ip =0.0.0.0
#默认打开8888端口
- 内网穿透,将8888端口转发至公网; 使用工具localtunnel
# lt是内网穿透工具localtunnel的命令,具体配置参见localtunnel 网站教程
$ lt —subdomain yywxxr —port 8888
# 终端会显示出一个网站链接,这时外网的浏览器打开这个链接,
# 就可以任意地方远程操作本地的Jupyter lab
其他tips
- 让程序后台运行,不会被打断:
# 在运行localtunnel时候,搭配使用nohup 和 & ,可实现后台永久运行。
$ nohup lt —subdomain yywxxr —port 8888 &
-
内网穿透工具列举,使用较为简单方便,具体使用规则可以前往官网。其中ngrok 和coplar需要下载客户端使用,因此更加稳定,不会掉线,为了稳妥起见,可以同时开两个内网穿透工具。具体如下:
- 直接使用,类似于使用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是一模一样的软件,操作命令几乎一样。