图解FRP客户端+服务端-内网穿透+端口443转发 Version:v0.43.0
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
说起FRP,肯定很多搞运维的都比较熟悉,毕竟这东西还是不错的,但有很多人也是因为疫情认识了它;受疫情影响,很多人都在家远程办公,因为很多资料和网络权限问题,有时必须远程桌面操作。但也有相关的软件,但有些时候不尽人意吧;
TeamViewer:用了挺长时间,流畅度稳定性都不错,莫名被检测到商用以后,找了好多破解版,几乎无用,无奈放弃。估计很多人也是因为这个放弃的;
向日葵:流畅度很一般,经常会有卡顿的情况,最近不知道是用的人多,流量超标造成的吧!!!
这时候就得FRP上阵了,先来说说FRP;
frp(fast reverse proxy)简介
frp是fast reverse proxy的缩写;frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
frp地址 https://github.com/fatedier/frp/releases
frp 支持支持多个平台 Linux windows arm 则需下载。
frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。
可以在 Github 的 Release 页面中下载到最新版本的客户端和服务端二进制文件。
图下案例, 启动后即可用 公网ip:443 访问到客户端局域网内的 210.12服务器的443端口;
frp 笔记
frp 分为server 端 和client 端;
server 端
systemd #systemd 服务启动脚本 服务端客户端都可用
frps #服务端启动脚本
frps.ini #服务端配置文件
frps_full.ini # 服务端配置文件样列
frpc #客户端启动脚本
frpc.ini #客户端端配置文件
frps_full.ini # 客户端配置文件样列
frp配置文件
1.server端
vim frps.ini
frp基础配置
bind_addr 服务端监听地址 0.0.0.0
bind_port 服务端监听端口 7000
bind_udp_port 服务端监听 UDP 端口 0
kcp_bind_port 服务端监听 KCP 协议端口 0
proxy_bind_addr 代理监听地址
log_file 日志文件地址 /var/log/frp.log
log_level 日志级别 trace, debug, info, warn, error(默认info)
log_max_days 日志文件保留天数 3
detailed_errors_to_client 服务端返回详细错误信息给客户端 true
tls_cert_file TLS 服务端证书文件路径
tls_key_file TLS 服务端密钥文件路径
tls_trusted_ca_file TLS CA 证书路径
frp权限验证
authentication_method 鉴权方式 token (默认token 。oidc)
authenticate_heartbeats 开启心跳消息鉴权 false
token 鉴权使用的 token 值 客户端需要设置一样的值才能鉴权通过
frp管理配置
allow_ports 允许代理绑定的服务端端口 1000-2000,2001,3000-4000
max_pool_count 最大连接池大小 5
max_ports_per_client 限制单个客户端最大同时存在的代理数 0(0表示没有限制)
tls_only 只接受启用了 TLS 的客户端连接 false
frp监控
dashboard_addr 启用 Dashboard 监听的本地地址 0.0.0.0
dashboard_port 启用 Dashboard 监听的本地端口 0
dashboard_user HTTP BasicAuth 用户名
dashboard_pwd HTTP BasicAuth 密码
enable_prometheus 是否提供 Prometheus 监控接口 false 需要同时启用了 Dashboard 才会生效
asserts_dir 静态资源目录 Dashboard 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源
frp HTTP & HTTPS
vhost_http_port 为 HTTP 类型代理监听的端口 0 启用后才支持 HTTP 类型的代理,默认不启用
vhost_https_port 为 HTTPS 类型代理监听的端口 0 启用后才支持 HTTPS 类型的代理,默认不启用
vhost_http_timeout HTTP 类型代理在服务端的 ResponseHeader 超时时间 60
subdomain_host 二级域名后缀
custom_404_page 自定义 404 错误页面地址
frp TCPMUX
tcpmux_httpconnect_port 为 TCPMUX 类型代理监听的端口 0 启用后才支持 TCPMUX 类型的代理,默认不启用
client 端 vim frpc.ini
基础配置
server_addr 连接服务端的地址 0.0.0.0
server_port 连接服务端的端口 7000
http_proxy 连接服务端使用的代理地址 格式为 {protocol}://user:passwd@192.168.1.128:8080 protocol 目前支持 http、socks5、ntlm
log_file 日志文件地址 ./frpc.log 如果设置为 console,会将日志打印在标准输出中
log_level 日志等级 info trace, debug, info, warn, error
log_max_days 日志文件保留天数 3
disable_log_color 禁用标准输出中的日志颜色 false
pool_count 连接池大小 0
user 用户名 设置此参数后,代理名称会被修改为 {user}.{proxyName},避免代理名称和其他用户冲突
dns_server 使用 DNS 服务器地址 默认使用系统配置的 DNS 服务器,指定此参数可以强制替换为自定义的 DNS 服务器地址
login_fail_exit 第一次登陆失败后是否退出 true
protocol 连接服务端的通信协议 tcp tcp, kcp, websocket
tls_enable 启用 TLS 协议加密连接 false
tls_cert_file TLS 客户端证书文件路径
tls_key_file TLS 客户端密钥文件路径
tls_trusted_ca_file TLS CA 证书路径
tls_server_name TLS Server 名称 为空则使用 server_addr
heartbeat_interval 向服务端发送心跳包的间隔时间 30
heartbeat_timeout 和服务端心跳的超时时间 90
udp_packet_size 代理 UDP 服务时支持的最大包长度 1500 服务端和客户端的值需要一致
start 指定启用部分代理 当配置了较多代理,但是只希望启用其中部分时可以通过此参数指定,默认为全部启用
权限验证
authentication_method 鉴权方式 token token, oidc 需要和服务端一致
authenticate_heartbeats 开启心跳消息鉴权 false 需要和服务端一致
authenticate_new_work_conns 开启建立工作连接的鉴权 false 需要和服务端一致
token 鉴权使用的 token 值 需要和服务端设置一样的值才能鉴权通过
oidc_client_id oidc_client_id
oidc_client_secret oidc_client_secret
oidc_audience oidc_audience
oidc_token_endpoint_url oidc_token_endpoint_url
UI
admin_addr 启用 AdminUI 监听的本地地址 0.0.0.0
admin_port 启用 AdminUI 监听的本地端口 0
admin_user HTTP BasicAuth 用户名
admin_pwd HTTP BasicAuth 密码
asserts_dir 静态资源目录
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!