jupyter notebook + frp 实现外网访问

工作缘由:jupyter notebook 开始只能在局域网内部使用,感觉很是麻烦,需要添加一种内网穿透的工具来使得能像访问外网一样的访问notebook。

首先这需要一个有外网IP的服务器,我这里是用的阿里云的轻量级服务器,这样就可以建立访问映射关系,我这里选用的是frp工具。

在这个网址可以下载到最新的工具

https://github.com/fatedier/frp/releases

这个工具分为客户端和服务端,在具有外网IP的服务器上运行服务端,在具有内网IP的笔记本上运行客户端,这样就能通过外网访问笔记本上的终端了。

具体操作是这样:

服务器上

$ vim frps.ini     % 此文件是服务端的配置文件

[common]
bind_port = 7000  % 访问端口
vhost_http_port = 8888  % 配置notebook的端口



% 运行服务端程序

$ ./frps -c ./frps.ini 

客户端

$ vim frps.ini     % 此文件是客户端的配置文件
[common]
server_addr = 101.200.151.68   % 服务端的地址

server_port = 7000             % 服务端的端口

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000              % ssh 的时候需要设置的端口

[jupyter]
type = http
local_port = 8888               % jupiter访问时的端口
custom_domains = 101.200.151.68 % 服务端的地址

$ ./frpc -c ./frpc.ini        % 运行客户端

此时,可以通过外网ssh到笔记本

$ ssh -p 6000 user&101.200.151.68
% 其中,6000是remote端口,user是笔记本的用户名,101.200.151.68是服务器外网IP地址

也就是说,通过remote端口访问服务器,会将这个端口的接受数据映射到客户端去访问。

jupiter操作

$ jupyter notebook --config=/home/user/.ipython/profile_myserver/ipython_notebook_config.py --port 8888

指定local_port,和配置文件

还有最重要的一点,就是轻量级服务器的防火墙一定要把相应的端口打开,不然怎么都访问不了的,我这里打开了7000和8888这两个端口。

猜你喜欢

转载自www.cnblogs.com/hustyan/p/11838894.html
今日推荐