frp 树莓派配置 SSH + WEB Demo

frp 是一个使用 Go 语言开发的高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。

frp 原理

frp 是典型的 C/S 架构,基本原理如下图:

frp.png

要使用 frp 需要一个外网服务器(做server), 内网服务器(做client)。

本文使用阿里云(外网),内网服务器使用树莓派(小小的身体,大大的梦想😝)。

配置

这里贴一下本人配置,使用版本:https://github.com/fatedier/frp/releases/tag/v0.22.0

公网服务器

nginx

通过80端口转发

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
server {
    listen 80;
    server_name  pi.mango.im;
    location / {
        proxy_pass http://localhost:9090;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
    }
}

frps

配置子域名为pi

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[common]
bind_port = 7000
dashboard_port = 7500
token = token_str
dashboard_user = admin
dashboard_pwd = admin
vhost_http_port = 9090
subdomain_host = mango.im

[pi]
type = http
auth_token = token_str
subdomain = pi

内网服务器

frpc

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[common]
server_addr = 公网IP
server_port = 7000
token = token_str

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

[pi]
type = http
local_port = 80
subdomain = pi

访问:http://pi.mango.im/,虽然有网络波动,但速度还不错!

SSH 连接到树莓派:ssh [email protected]公网IP -p 6000

参考

updatedupdated2020-08-272020-08-27
Load Comments?