欢迎光临
我们一直在努力

部署frp让树莓派搭建的网站可访问公网

什么是frp?

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

安装环境:

  • 服务端系统:centos X86_64
  • 客户端系统:debian aarch64

1. 部署服务端 frps

查看自己cpu架构后,到 GitHub开源地址 下载自己系统架构对应的源码压缩包,

uname -a #查看CPU架构
wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz #下载压缩包
tar -zxvf frp_0.45.0_linux_amd64.tar.gz #解压缩
mv frp_0.45.0_linux_amd64 /usr/local/ #移动目录至/usr/local
mv /usr/local/frp_0.45.0_linux_amd64 frp #修改目录名为frp
cd /usr/local/frp 进入frp目录
Bash

fprs.ini文件详解:

[common]                        # 通用配置段
bind_addr = 0.0.0.0             # 绑定的IP地址,支持IPv6,不指定默认0.0.0.0;
bind_port = 7000                # 服务端口;
bind_udp_port = 7001            # 是否使用udp端口,不使用删除或注释本行;
kcp_bind_port = 7000            # 是否使用kcp协议,不使用删除或注释本行;
# proxy_bind_addr = 127.0.0.1   # 代理监听地址,默认和bind_addr相同;

# 虚拟主机
vhost_http_port = 80            # 是否启用虚拟主机,端口可以和bind_port相同;
vhost_https_port = 443
vhost_http_timeout = 60         # 后端虚拟主机响应超时时间,默认为60s;

# 开启frps仪表盘可以检查frp的状态和代理的统计信息。
dashboard_addr = 0.0.0.0        # frps仪表盘绑定的地址;
dashboard_port = 7500           # frps仪表盘绑定的端口;
dashboard_user = admin          # 访问frps仪表盘的用户;     
dashboard_pwd = admin           # 密码;
assets_dir = ./static           # 仪表盘页面文件目录,只适用于调试;

# 日志配置文件
log_file = ./frps.log           # 日志文件,不指定日志信息默认输出到控制台;
log_level = info                # 日志等级,可用等级“trace, debug, info, warn, error”;
log_max_days = 3                # 日志保存最大保存时间;

token = 12345678                # 客户端与服务端通信的身份验证令牌

heartbeat_timeout = 90          # 心跳检测超时时间,不建议修改默认配置,默认值为90;?

# 指定允许客户端使用的端口范围,未指定则没有限制;
allow_ports = 2000-3000,3001,3003,4000-50000

max_pool_count = 5              # 每个客户端连接服务端的最大连接数;
max_ports_per_client = 0        # 每个客户端最大可以使用的端口,0表示无限制

authentication_timeout = 900    # 客户端连接超时时间(秒),默认为900s;

subdomain_host = frps.com       # 自定义子域名,需要在dns中将域名解析为泛域名;

tcp_mux = true                  # 是否使用tcp复用,默认为true;
                                # frp只对同意客户端的连接进行复用;
Ini

然后我们开始修改配置文件 frps.ini
frps.ini 配置示例:

[common]
bind_addr = 0.0.0.0
bind_port = 5443
kcp_bind_port = 5443
dashboard_port = 6443
dashboard_user = admin
dashboard_pwd = 0NnFAzGZCbZsHSG
vhost_http_port = 80
vhost_https_port = 443
log_file = ./frps.log
log_level = info
log_max_days = 3
token = Y3n5NIrg4BGsCZc
Ini

2. 启动 frps

./frps -c frps.ini
Bash

frps 启动默认为前台启动,在断开 ssh 连接后 frps 将会自动停止服务。所以我们要将其注册为系统服务。

vim /usr/lib/systemd/system/frps.service # 使用vim编辑frps.service文件

# 将以下内容写入frps.service文件
[Unit]
Description=frp server
After=network.target

[Service]
Type=simple

ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID

[Install]
WantedBy=multi-user.target

# 编辑完成后执行以下命令
systemctl enable frps
systemctl start frps.service
systemctl status frps

# 命令行返回以下 启动成功
● frps.service - frp server
   Loaded: loaded (/usr/lib/systemd/system/frps.service; enabled; vendor preset: disabled)
   Active: active (running) since 五 2022-11-25 16:23:52 CST; 7s ago
 Main PID: 23875 (frps)
   CGroup: /system.slice/frps.service
           └─23875 /usr/local/frp/frps -c /usr/local/frp/frps.ini

1125 16:23:52 VM-20-7-centos systemd[1]: Started frp server.
Bash

3. 部署 frpc

查看自己cpu架构后,到 GitHub开源地址 下载自己系统架构对应的源码压缩包,

uname -a #查看CPU架构
wget https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz #下载压缩包
tar -zxvf frp_0.45.0_linux_amd64.tar.gz #解压缩
mv frp_0.45.0_linux_amd64 /usr/local/ #移动目录至/usr/local
mv /usr/local/frp_0.45.0_linux_amd64 frp #修改目录名为frp
cd /usr/local/frp 进入frp目录
Bash

frpc文件详解

# 通用配置
[common]                       
server_addr = 0.0.0.0           # frps服务器的IP地址;支持IPv6
server_port = 7000              # frps服务器的端口

# 如果要通过http或socks5代理连接frps,可以在此处或在全局环境变量中设置代理,只支持tcp协议;
# http_proxy = http://user:passwd@192.168.1.128:8080
# http_proxy = socks5://user:passwd@192.168.1.128:1080

# 客户端日志
log_file = ./frpc.log       # 指定日志文件;
log_level = info            # 指定日志等级;
log_max_days = 3

token = Y3n5NIrg4BGsCZc     # 客户端与服务端通信的身份验证令牌

# 设置管理地址,用于通过http api控制frpc的动作,如重新加载;
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_passwd = admin

pool_count = 5              # 初始连接池的数量,默认为0;

tcp_mux = true              # 是否启用tcp复用,默认为true;

user = your_name            # frpc的用户名,用于区别不用frpc的代理;

login_fail_exit = true      # 首次登录失败时退出程序,否则连续重新登录到frps;

protocol = tcp              # 用于连接服务器的协议,支持tcp、kcp、websocket;

dns_server = 8.8.8.8        # 为frp 客户端指定一个单独的DNS服务器;

# start = ssh,dns           # 要启用的代理的名字,默认为空表示所有代理;

# 心跳检查
# heartbeat_interval = 30   # 失败重试次数
# heartbeat_timeout = 90    # 超时时间
Ini

4. 配置 frpc

frpc 配置示例:

#frpc.ini
[ssh]                       # 代理配置段名称,如果配置user=your_name,则显示为your_name.ssh;
type = tcp                  # 协议默认tcp,可选tcp,udp,http,https,stcp,xtcp;
local_ip = 127.0.0.1        # 本地地址
local_port = 22             # 本地端口
use_encryption = false      # 是否加密服务端和客户端的通信信息,默认为不加密;
use_compression = false     # 是否开启压缩,默认不开启;
remote_port = 6001          # 在服务器端开启的远程端口;
# 负载均衡配置
group = test_group          # 负载均衡组名,会将同一组内的客户端进行负载;
group_key = 123456          # 负载均衡组密钥; 
# web示例
[web01]
type = http                 # 使用http
local_ip = 127.0.0.1        
local_port = 80
use_encryption = false
use_compression = true
http_user = admin           # 访问web01页面启用认证,用户名admin
http_pwd = admin            # 密码
subdomain = web01.           # 子域名,需要服务端配置了subdomain_host参数;
custom_domains = web02.example.com # web01的域名,和subdomain二选一
locations = /,/pic          # 指定用于路由的URL前缀;
host_header_rewrite = example.com   # 配置http包头域名重写;
header_X-From-Where = frp           # 添加包头信息X-From-Where: frp;

[web01_https]
type = https
local_port = 80
custom_domains = web01.yunyuwu.cn
plugin = https2http
plugin_local_addr = 127.0.0.1:80
plugin_crt_path = ./ssl/web02.example.com.crt    # ssl证书文件路径
plugin_key_path = ./ssl/web02.example.com.key
plugin_host_header_rewrite = web02.example.com
plugin_header_X-From-Where = frp
Ini

5. 启动 frpc

博主使用了宝塔的 进程守护管理器 2.4
部署frp让树莓派搭建的网站可访问公网

注意事项:

  1. 修改配置文件后记得重启服务,不然不会生效。

参考资料:

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

除特别注明外,本站所有文章均基于CC-BY-NC-SA 4.0原创,转载请注明出处。
文章名称:《部署frp让树莓派搭建的网站可访问公网》
文章链接:https://www.xpn.cc/4441/fy.html
分享到: 更多 (0)

热门推荐

评论 抢沙发

切换注册

登录

忘记密码 ?

切换登录

注册