FRP
https://github.com/fatedier/frp/blob/master/README_zh.md
下载软件包
frp包里有如下文件
服务器端需要更改frps.ini文件
客户端需要更改frpc.ini文件
服务器
安装
https://github.com/snowdreamtech/frp?spm=a2c4e.10696291.0.0.4a5619a4SqlVwU
:::success
Docker
docker run —restart=always —network host -d -v /etc/frp/frps.ini:/etc/frp/frps.ini —name frps snowdreamtech/frps :::
修改frps.ini
[common]
#绑定的端口,
bind_port = 7000
#设置监听 HTTP 请求端口为 8080
vhost_https_port = 8080
#使用 xx.xx.xx.xx:7500 访问frp,展示你的信息
dashboard_port = 7500
#进入 xx.xx.xx.xx:7500 所需要的用户名和密码
dashboard_user = admin
dashboard_pwd = password
# 自己设的token
privilege_token = 123456
#log_file日志文件
log_file = ./frps.log
#log_level记录的日志级别
log_level = info
#log_max_days日志留存天数
log_max_days = 3
#authentication_timeout超时时间
authentication_timeout = 0
#max_pool_count最大链接池,每个代理预先与后端服务器建立起指定数量的最大链接数
max_pool_count = 50
:::success 配置文件 :::
[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只对同意客户端的连接进行复用;
客户端/树莓派
rm -f frps*
[common]
server_addr = 此处填服务器公网ip
server_port = 7777 #此处要与服务器端frps.ini文件中bind_port相同
[ssh]
type = tcp
local_ip = 192.168.31.65 #内网主机的ip
local_port = 22 #ssh的默认端口
remote_port = 6000 #自定义的访问内部ssh端口号,确保服务器已开放此端口
运行服务
./frpc -c frpc.ini #直接运行
nohup ./frpc -c ./frpc.ini & #后台运行
测试
ssh pi@公网ip -p 6000
端口占用问题
在外部云服务器上布置Frp服务的时候发现80被占用,于是用到了Ngnix反向代理功能