frp0.4.3说明文档

 admin   2022-06-22 11:47   221 人阅读  0 条评论

使用 systemd

这个示例将会演示在 Linux 系统下使用 systemd 控制 frps 及配置开机自启。


在 Linux 系统下,使用systemd 可以方便地控制 frp 服务端 frps 的启动和停止、配置后台运行和开启自启。

要使用 systemd 来控制 frps,需要先安装 systemd,然后在 /etc/systemd/system 目录下创建一个 frps.service 文件。

  1. 如Linux服务端上没有安装 systemd,可以使用 yumapt 等命令安装 systemd

    # yum yum install systemd # apt apt install systemd

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

$ vim /etc/systemd/system/frps.service

写入内容

[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
[Install] WantedBy = multi-user.target

使用 systemd 命令,管理 frps。

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

    systemctl enable frps

服务端配置


frp 服务端详细配置说明。




参数类型说明默认值可选值备注
bind_addrstring服务端监听地址0.0.0.0

bind_portint服务端监听端口7000
接收 frpc 的连接
bind_udp_portint服务端监听 UDP 端口0
用于辅助创建 P2P 连接
kcp_bind_portint服务端监听 KCP 协议端口0
用于接收采用 KCP 连接的 frpc
proxy_bind_addrstring代理监听地址同 bind_addr
可以使代理监听在不同的网卡地址
log_filestring日志文件地址./frps.log
如果设置为 console,会将日志打印在标准输出中
log_levelstring日志等级infotrace, debug, info, warn, error
log_max_daysint日志文件保留天数3

disable_log_colorbool禁用标准输出中的日志颜色false

detailed_errors_to_clientbool服务端返回详细错误信息给客户端true

tcp_mux_keepalive_intervalinttcp_mux 的心跳检查间隔时间60
单位:秒
tcp_keepaliveint和客户端底层 TCP 连接的 keepalive 间隔时间,单位秒7200
负数不启用
heartbeat_timeoutint服务端和客户端心跳连接的超时时间90
单位:秒
user_conn_timeoutint用户建立连接后等待客户端响应的超时时间10
单位:秒
udp_packet_sizeint代理 UDP 服务时支持的最大包长度1500
服务端和客户端的值需要一致
tls_cert_filestringTLS 服务端证书文件路径


tls_key_filestringTLS 服务端密钥文件路径


tls_trusted_ca_filestringTLS CA 证书路径


参数类型说明默认值可选值备注
authentication_methodstring鉴权方式tokentoken, oidc
authenticate_heartbeatsbool开启心跳消息鉴权false

authenticate_new_work_connsbool开启建立工作连接的鉴权false

tokenstring鉴权使用的 token 值

客户端需要设置一样的值才能鉴权通过
oidc_issuerstringoidc_issuer


oidc_audiencestringoidc_audience


oidc_skip_expiry_checkbooloidc_skip_expiry_check


oidc_skip_issuer_checkbooloidc_skip_issuer_check


参数类型说明默认值可选值备注
allow_portsstring允许代理绑定的服务端端口

格式为 1000-2000,2001,3000-4000
max_pool_countint最大连接池大小5

max_ports_per_clientint限制单个客户端最大同时存在的代理数0
0 表示没有限制
tls_onlybool只接受启用了 TLS 的客户端连接false

参数类型说明默认值可选值备注
dashboard_addrstring启用 Dashboard 监听的本地地址0.0.0.0

dashboard_portint启用 Dashboard 监听的本地端口0

dashboard_userstringHTTP BasicAuth 用户名


dashboard_pwdstringHTTP BasicAuth 密码


enable_prometheusbool是否提供 Prometheus 监控接口false
需要同时启用了 Dashboard 才会生效
asserts_dirstring静态资源目录

Dashboard 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源
pprof_enablebool启动 Go HTTP pproffalse
用于应用调试
参数类型说明默认值可选值备注
vhost_http_portint为 HTTP 类型代理监听的端口0
启用后才支持 HTTP 类型的代理,默认不启用
vhost_https_portint为 HTTPS 类型代理监听的端口0
启用后才支持 HTTPS 类型的代理,默认不启用
vhost_http_timeoutintHTTP 类型代理在服务端的 ResponseHeader 超时时间60

subdomain_hoststring二级域名后缀


custom_404_pagestring自定义 404 错误页面地址


参数类型说明默认值可选值备注
tcpmux_httpconnect_portint为 TCPMUX 类型代理监听的端口0
启用后才支持 TCPMUX 类型的代理,默认不启用
tcpmux_passthroughbool是否透传 CONNECT 请求false
通常在本地服务是 HTTP Proxy 时使用

客户端配置


frp 客户端的详细配置说明。

参数类型说明默认值可选值备注
server_addrstring连接服务端的地址0.0.0.0

server_portint连接服务端的端口7000

connect_server_local_ipstring连接服务端时所绑定的本地 IP


dial_server_timeoutint连接服务端的超时时间10

dial_server_keepaliveint和服务端底层 TCP 连接的 keepalive 间隔时间,单位秒7200
负数不启用
http_proxystring连接服务端使用的代理地址

格式为 {protocol}://user:passwd@192.168.1.128:8080 protocol 目前支持 http、socks5、ntlm
log_filestring日志文件地址./frpc.log
如果设置为 console,会将日志打印在标准输出中
log_levelstring日志等级infotrace, debug, info, warn, error
log_max_daysint日志文件保留天数3

disable_log_colorbool禁用标准输出中的日志颜色false

pool_countint连接池大小0

userstring用户名

设置此参数后,代理名称会被修改为 {user}.{proxyName},避免代理名称和其他用户冲突
dns_serverstring使用 DNS 服务器地址

默认使用系统配置的 DNS 服务器,指定此参数可以强制替换为自定义的 DNS 服务器地址
login_fail_exitbool第一次登陆失败后是否退出true

protocolstring连接服务端的通信协议tcptcp, kcp, websocket
tls_enablebool启用 TLS 协议加密连接false

tls_cert_filestringTLS 客户端证书文件路径


tls_key_filestringTLS 客户端密钥文件路径


tls_trusted_ca_filestringTLS CA 证书路径


tls_server_namestringTLS Server 名称

为空则使用 server_addr
disable_custom_tls_first_byteboolTLS 不发送 0x17false
当为 true 时,不能端口复用
tcp_mux_keepalive_intervalinttcp_mux 的心跳检查间隔时间60
单位:秒
heartbeat_intervalint向服务端发送心跳包的间隔时间30
建议启用 tcp_mux_keepalive_interval,将此值设置为 -1
heartbeat_timeoutint和服务端心跳的超时时间90

udp_packet_sizeint代理 UDP 服务时支持的最大包长度1500
服务端和客户端的值需要一致
startstring指定启用部分代理

当配置了较多代理,但是只希望启用其中部分时可以通过此参数指定,默认为全部启用
meta_xxxmap附加元数据

会传递给服务端插件,提供附加能力
参数类型说明默认值可选值备注
authentication_methodstring鉴权方式tokentoken, oidc需要和服务端一致
authenticate_heartbeatsbool开启心跳消息鉴权false
需要和服务端一致
authenticate_new_work_connsbool开启建立工作连接的鉴权false
需要和服务端一致
tokenstring鉴权使用的 token 值

需要和服务端设置一样的值才能鉴权通过
oidc_client_idstringoidc_client_id


oidc_client_secretstringoidc_client_secret


oidc_audiencestringoidc_audience


oidc_token_endpoint_urlstringoidc_token_endpoint_url


oidc_additional_xxxmapOIDC 附加参数

map 结构,key 需要以 oidc_additional_ 开头
参数类型说明默认值可选值备注
admin_addrstring启用 AdminUI 监听的本地地址0.0.0.0

admin_portint启用 AdminUI 监听的本地端口0

admin_userstringHTTP BasicAuth 用户名


admin_pwdstringHTTP BasicAuth 密码


asserts_dirstring静态资源目录

AdminUI 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源
pprof_enablebool启动 Go HTTP pproffalse
用于应用调试


本文地址:https://liuchunjie.top/?id=366
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?