利用远程服务器实现内网穿透访问jupyter notebook
有两种方式,但是都需要一个有公网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