frp的内网穿透及外网访问内网jupyter-notebook的实现

fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议, 这里我们用它来搭建外网访问内网jupyter-notebook的服务。
我们基于Ubuntu16.04 选用amd64版本,
Screen Shot 2017-11-12 at 02.25.46

server设置

server就是你拥有外网IP的服务器

1
2
3
[common]
bind_port = 7000
vhost_http_port = 8888

./frps -c ./frps.ini启动,注意服务端需要先启动。

client设置

client就是没有外网IP,但是你想在外网访问的机器,

XXXXXXXXX就是上面的server的外网IP。

1
2
3
4
5
6
7
8
[common]
server_addr = XXXXXXXXX
server_port = 7000

[web]
type = http
local_port = 8888
custom_domains = XXXXXXXXX

./frpc -c ./frpc.ini启动。

使用

接下来,在client端,在8888段端口启动jupyter-notebook即可在XXXXXXXXX:8888访问内网机器上的Notebook了。

Screen Shot 2017-11-12 at 02.37.55

另外,由于jupyter-notebook自带终端,这也一举两得,也是一个内网穿透ssh的方案。
当然,必须使用一些运维工具来保证服务的稳定性,如supervisor,可参考使用supervisor支持Python3程序 | 不正经数据科学家
Screen Shot 2017-11-12 at 02.39.36