目录

〇、使用情景拓扑及资料参考

       1、需求情景

           家庭内网,无公网ip,外网访问家里内网内容,如群晖nas、家庭影音。。。

           租用一个有公网ip的云端服务器,如:14.215.177.44

       2、拓扑结构

宝塔安装的 frpc 开机启动_树莓派

宝塔安装的 frpc 开机启动_树莓派_02

       3、参考资料:

       GitHub项目:GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

      GitHub中文文档:文档 | frp (gofrp.org)

一、Linux搭建FRP服务

我因为有个树莓派的3代开发板,刚好也有个公网ip,于是用树莓派搭个FRP服务器

     A、树莓派Linux系统安装

树莓派官网下载地址:http://www.raspberrypi.org/downloads(可下载最新的 Raspbian 树莓派系统) ;树莓派官方论坛地址:http://www.raspberrypi.org/phpBB3/ ;

1. 插上 SD 卡到电脑,使用SDFormatter.exe格式化 SD 卡:

宝塔安装的 frpc 开机启动_网络_03

2. 用Win32DiskImager.exe 点击“Write”给SD卡写入镜像, 写完后把 SD 卡插入树莓派即可运行:

宝塔安装的 frpc 开机启动_服务器_04

3.装机后我们配置的树莓派系统的 pi 用户密码默认为 raspberry ,root 权限密码为 raspberry

     B、Linux系统相关配置

1、初次登陆linux,做一些简单配置:

     先开启DHCP,拿到ip后再更新

pi@raspberrypi:~$ sudo -i     ##切换root
     root@raspberrypi:~# raspi-config    ##打开简易配置界面

宝塔安装的 frpc 开机启动_服务器_05

宝塔安装的 frpc 开机启动_服务器_06

宝塔安装的 frpc 开机启动_网络_07

     更新一下Linux系统:

       harliam@raspberrypi:~$ sudo -i     ##切换root

       root@raspberrypi:~# apt-get update     ##更新命令

宝塔安装的 frpc 开机启动_linux_08

    开启ssh

       root@raspberrypi:~# raspi-config

       

宝塔安装的 frpc 开机启动_网络_09

宝塔安装的 frpc 开机启动_网络_10

配置公网固定ip

root@raspberrypi:~# nano /etc/dhcpcd.conf    ##打开并编辑DHCP配置文件;

在最底下添加输入网络ip信息:

interface eth0
 static ip_address=14.215.177.44/29
 static routers=14.215.177.46
 static domain_name_servers=114.114.114.114

然后保存退出,重启一下Linux系统;

更改ssh默认端口,我的把默认22端口改为2222端口,注意把前面的#号去掉

root@raspberrypi:~# nano /etc/ssh/sshd_config     ##更改SSH配置文件,把默认22端口更改为2222;

宝塔安装的 frpc 开机启动_服务器_11

     C、FRP服务端下载及配置

1、根据自己的服务器硬件及系统版本下载FRPS:

root@raspberrypi:~# wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_arm64.tar.gz

宝塔安装的 frpc 开机启动_网络_12

 

宝塔安装的 frpc 开机启动_服务器_13

 2、解压下载号的压缩文件:

root@raspberrypi:~# mkdir frps    ##root文件夹下创建一个frps的目录
root@raspberrypi:~# tar -zxvf frp_0.44.0_linux_arm64.tar.gz /root/frps/      ##解压frp文件

使用文本编辑器,如 nano 创建并编辑 frps.service 文件:

nano /etc/systemd/system/frps.service

3、创建frps服务写入内容:

[Unit]
 # 服务名称,可自定义
 Description = frp server
 After = network.target syslog.target
 Wants = network.target[Service]
 Type = simple
 # 启动frps的命令,需修改为您的frps的安装路径
 ExecStart = /path/to/frps -c /path/to/frps.ini              ##注意这里路径要根据自己frp文件存放位置定[Install]
 WantedBy = multi-user.target

4、使用 systemd 命令,管理 frps。

# 启动frp
 systemctl start frps
 # 停止frp
 systemctl stop frps
 # 重启frp
 systemctl restart frps
 # 查看frp状态
 systemctl status frps
 #配置 frps 开机自启
 systemctl enable frps

5、frps配置文件(刚配置的服务器ip为:14.215.177.44)

[common]
 bind_port = 7000
 bind_addr = 0.0.0.0
 authentication_method = token
 token = abcd1234dashboard_port = 8001
 dashboard_user = admin
 dashboard_pwd = 12345678vhost_http_port = 8800
 vhost_https_port =8899

二、配置FRP客户端

参考:示例 | frp (gofrp.org)

     1、FRP客户端安装及配置

[common]
 server_addr = 14.215.177.44
 server_port = 7000
 authentication_method = token
 token = abcd1234##上面这一段是为了跟frp服务器相连接
[DSM WEB]
 type = https
 local_port = 8899
 custom_domains = nas.abcd.com[RDP_WIN]
 type = tcp
 local_ip = 192.168.3.5
 local_port = 8888
 remote_port = 8888
 custom_domains = win.abcd.com[OpenWRT WEB]
 type = http
 local_ip = 192.168.3.1
 local_port = 80
 custom_domains = op.abcd.com[LXQT WEB]
 type = http
 local_port = 8811
 custom_domains = nas.abcd.com[ssh]
 type = tcp
 local_ip = 127.0.0.1
 local_port = 22
 remote_port = 2233[ESXI WEB]
 type = https
 local_ip = 192.168.3.99
 local_port = 443
 custom_domains = esxi.abcd.com