如何通过内网穿透,外网远程访问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?的主要内容,如果未能解决你的问题,请参考以下文章

frp内网穿透

frp内网穿透

如何通过外网(互联网)访问本地计算机里的网站?Ngrok(内网穿透)帮你解决!

Linux-SSH反向连接(内网穿透,打洞)

如何让内网的CENTOS服务器能用域名访问?

内网穿透:远程访问内网IP中的电脑