利用远程服务器实现内网穿透访问jupyter notebook

mac2022-06-30  101

∇ \nabla 联系方式:

e-mail: FesianXu@gmail.com

QQ: 973926198

github: https://github.com/FesianXu

知乎专栏: 计算机视觉/计算机图形理论与应用

微信公众号:


有两种方式,但是都需要一个有公网IP的云服务器, 第一种方式使用ssh隧道转发;第二种方式用frp进行内网穿透,并且需要有个域名,可以在腾讯云之类的注册申请一个。第一种方式更简单,第二种方式只要有浏览器即可访问jupyter notebook。

ssh隧道转发

本地安装Xshell,建立连接,登录服务器

在远程服务器上,启动jupyter notebook服务:

jupyter notebook --no-browser --port=8889

本地安装ssh,参考"Windows安装OpenSSH支持SSH",打开cmd,输入以下命令:

ssh -N -f -L localhost:8888:localhost:8889 -p 22 remote_user@remote_host

其中: -N 告诉SSH没有命令要被远程执行; -f 告诉SSH在后台执行; -L 是指定port forwarding的配置,远端端口是8889,本地的端口号的8888。remote_user@remote_host 用实际的远程帐户和远程地址替换,@不变

打开浏览器,输入地址:http://localhost:8888/ ,输入token即可使用

frp技术

要求:一台云服务器,一个性能强大但不方便携带的电脑,frp软件[1]

首先下载frp软件,找到你的系统对应的版本

一个安装在服务器上,另外一个安装在你的要穿透的电脑是 服务器上找到frps.ini 配置如下

[common] bind_port = 7000 vhost_http_port = 8888 # 下面的是配置可视化界面的,可以通过你的ip:7500访问 dashboard_port = 7500 dashboard_user = 用户名 dashboard_pwd = 密码

要穿透的笔记本的frpc.ini配置

[common] server_addr = 你的服务器ip地址 server_port = 7000 # 这个是设置ssh的,外网可以访问 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6001 # 这个是对于穿透jupyter配置 [jupyter] type = http local_port = 8888 custom_domains = 你的域名

启动服务器端./frps -c frps.ini 启动客户端./frpc -c frpc.ini

设置快捷启动方式

#!/bin/bash nohup /myapp/frp/frpc -c /myapp/frp/frpc.ini >/dev/null 2>&1 &

jupyter notebook 设置启动

#!/bin/bash nohup jupyter notebook >/dev/null 2>&1 &

最后成功实现访问

Reference

[1]. https://github.com/fatedier/frp [2]. https://blog.csdn.net/martind/article/details/82716445 [3]. https://blog.csdn.net/chineseqsc/article/details/86241256

最新回复(0)