穿透内网,访问jupyter notebook...
e-mail: FesianXu@gmail.com
github: https://github.com/FesianXu
知乎专栏: 计算机视觉/计算机图形理论与应用
微信公众号:
有两种方式,但是都需要一个有公网IP的云服务器, 第一种方式使用ssh隧道转发;第二种方式用frp进行内网穿透,并且需要有个域名,可以在腾讯云之类的注册申请一个。第一种方式更简单,第二种方式只要有浏览器即可访问jupyter notebook。
ssh隧道转发
本地安装Xshell,建立连接,登录服务器
在远程服务器上,启动jupyter notebook服务:
1
jupyter notebook --no-browser --port=8889
本地安装ssh,参考"Windows安装OpenSSH支持SSH",打开cmd,输入以下命令:
1
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 配置如下
1
2
3
4
5
6
7[common]
bind_port = 7000
vhost_http_port = 8888
下面的是配置可视化界面的,可以通过你的ip:7500访问
dashboard_port = 7500
dashboard_user = 用户名
dashboard_pwd = 密码要穿透的笔记本的
frpc.ini
配置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[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
设置快捷启动方式
1
2!/bin/bash
nohup /myapp/frp/frpc -c /myapp/frp/frpc.ini >/dev/null 2>&1 &jupyter notebook 设置启动
1
2!/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