如何通过内网穿透,外网远程访问JupyterNotebook?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过内网穿透,外网远程访问JupyterNotebook?相关的知识,希望对你有一定的参考价值。
参考技术A 在数据科学领域,Jupyter Notebook 已成为处理数据的必备工具。其用途包括数据清理和探索、可视化、机器学习和大数据分析。Jupyter Notebook的安装非常简单,如果你是小白,那么建议你通过安装Anaconda来解决Jupyter Notebook的安装问题,因为Anaconda已经自动为你安装了Jupter Notebook及其他工具。
当Anaconda安装好后,打开 jupyter notebook, 访问本地localhost:8888 即可愉快的通过浏览器开启沉迷学习之旅。
( 温馨提示: 如果你同时启动了多个Jupyter Notebook,由于默认端口“8888”被占用,因此地址栏中的数字将从“8888”起,每多启动一个Jupyter Notebook数字就加1,如“8889”、“8890”……)
假如小伙伴们想一起共享开发环境,或比如把实验室内服务器的notebook共享给项目组的其他同学,那该怎么办呢?
这时候我们就可以用到花生壳内网穿透了~
具体步骤见下。
一、配置notebook支持远程访问。
1.1 生成默认配置文件
打开运行框,输入命令: jupyter notebook --generate-config
1.2 生成访问密码(token)
从notebook或ipython中输入如下命令,设置远程访问密码,同时注意复制输出的xxx加密密码串。
命令:
from notebook.auth import passwd
passwd()
1.3 修改./jupyter/jupyter_notebook_config.py中对应行如下
配置:
c.NotebookApp.ip='*'
c.NotebookApp.password = u'argon2xxxxxxxxxx'
1.4 打开浏览器测试访问
重启notebook,并访问http://127.0.0.1:8888/
输入刚才设置的密码,查看访问是否成功。
二、配置花生壳内网穿透映射
1、配置花生壳内网穿透映射指向notebook本机访问地址。
1.1 安装并登录花生壳客户端
1.1.1安装客户端
安装花生壳客户端
1.1.2登录客户端
如果原来已经注册好花生壳帐号的用户,可直接输入帐号和密码登录花生壳(内网穿透)客户端;
如果还未拥有花生壳帐号的用户,可在登录界面点击右下方的“注册帐号”,然后选择“个人注册”或“企业注册”。
1.2 填写映射信息
名称: 自定义,随意起个有意义的名称就行
应用类型: 选择HTTP
外网域名和外网端口: 选择默认分配即可。(也可以自己去花生壳官网申请个壳域名,比如52xuexi.ticp.net)
内网主机:填写 127.0.0.1
内网端口:填写8888
2、 检验诊断信息
当映射添加正确的话,右侧的诊断信息会显示“连接成功”,若无该提示,则需检查自己之前的步骤是否做对。
三、浏览器访问映射
浏览器输入刚才添加的“notebook外网”映射,比如我的是http://xxxx.tcp.net:25440,即可愉快的在外网访问本地notebook了。
frp内网穿透
公司环境内网可以访问外网,但无法外网访问内网,通过frp进行内网穿透,具体frp原理可自行百度
下载源: https://github.com/fatedier/frp/releases
参考官网配置案例:https://github.com/fatedier/frp
目的:公网ssh远程连接内网服务器
环境:
公网环境A:腾讯云主机+公网+CentOS8
内网环境B:vmware虚拟机+内网+CentOS7
1,下载解压frp(公网主机)
[root@A ~]# mkdir frp
[root@A ~]# cd frp/
[root@A ~]# wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz
[root@A frp]# ls
frp_0.21.0_linux_amd64.tar.gz
[root@A frp]# tar zxf frp_0.21.0_linux_amd64.tar.gz
frp_0.21.0_linux_amd64 frp_0.21.0_linux_amd64.tar.gz
[root@A frp]# cd frp_0.21.0_linux_amd64/
[root@A frp_0.21.0_linux_amd64]# ls
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE
这里面包含了server端和client端的配置文件,此机器是公网server端,可以删除其他文件,只保留frps frps.ini两个文件(都留下也可,看个人喜好)frps中s代表server,frpc中c代表client
[root@A frp_0.21.0_linux_amd64]# ls
frps frps.ini
2.配置server端frp
我们只通过SSH方式连接内网,配置文件用默认即可
[root@A frp_0.21.0_linux_amd64]# cat frps.ini
[common]
bind_port = 7000
3.启动frp
也可以使用如下方式,后台启动
nohup ./frps -c frps.ini & #启动frp
tail -f nohup.out #查看日志
4.内网client端下载frp,并配置frp
[root@localhost frp_0.21.0_linux_amd64]# cat frpc.ini
[common]
server_addr = X.X.X.X #此处填写公网server端IP
server_port = 7000 #server端 即填写服务端配置中的bind_port
[ssh]
type = tcp #协议类型,TCP或UDP
local_ip = 192.168.238.131 #本地cleint端的ip
local_port = 22 #ssh端口
remote_port = 6000 #server端远程client端ssh时,所用端口
5,启动client端frp
也可以使用如下方式,后台启动
nohup ./frps -c frps.ini & #启动frp
tail -f nohup.out #查看日志
6.server端远程连接client
ssh -p 6000 root@X.X.X.X #X.X.X.X指的是公网IP,
以上是关于如何通过内网穿透,外网远程访问JupyterNotebook?的主要内容,如果未能解决你的问题,请参考以下文章