客户端插件

默认情况下,frpc 只会转发请求到本地 TCP 或 UDP 端口,也就是通过 local_iplocal_port 指定的本地服务地址。

通过客户端插件的功能将一些简单的本地服务内置在 frpc 中,可以帮助用户在只启动 frpc 的情况下实现原本需要额外启动其他服务才能实现的功能。

在每一个代理的配置中,通过 plugin 指定需要使用的插件,插件的配置参数都以 plugin_ 开头。当启用客户端插件后,local_iplocal_port 不再需要配置。

客户端插件可以被应用在任意类型的代理中,但是需要插件本身的协议能够支持。例如静态文件访问插件可以通过 TCP 或者 HTTP 的代理暴露出去。

使用 http_proxy 插件的示例:

  1. # frpc.ini
  2. [http_proxy]
  3. type = tcp
  4. remote_port = 6000
  5. plugin = http_proxy
  6. plugin_http_user = abc
  7. plugin_http_passwd = abc

plugin_http_userplugin_http_passwd 即为 http_proxy 插件可选的配置参数。

http_proxy

HTTP 代理插件,用于将内网机器作为 HTTP 代理暴露给其他服务,可以通过此代理访问到此内网机器能够访问到的其他服务。

参数可选描述
plugin_http_userHTTP 代理用户名
plugin_http_passwdHTTP 代理密码

socks5

SOCKS5 代理。

参数可选描述
plugin_user连接代理的用户名
plugin_passwd连接代理的密码

static_file

静态文件浏览服务,通过暴露一个简单的 HTTP 服务查看指定的目录下的文件。

参数可选描述
plugin_local_path要对外暴露的文件目录
plugin_strip_prefix用户请求的 URL 路径会被映射到本地文件,如果希望去除用户访问文件的前缀,需要配置此参数
plugin_http_userHTTP BasicAuth 用户名
plugin_http_passwdHTTP BasicAuth 密码

unix_domain_socket

代理本地 Unix 域套接字的服务。

参数可选描述
plugin_unix_path本地 Unix 域套接字地址

http2https

将本地的 HTTPS 服务以 HTTP 的形式暴露出去。

参数可选描述
pluginlocal_addr本地服务地址
plugin_host_header_rewrite如果配置,发送给本地服务的请求的 Host 字段会被修改
plugin_header{header name}发送给本地服务的请求会被加上指定的 header 字段

https2http

将本地的 HTTP 服务以 HTTPS 的形式暴露出去。

参数可选描述
pluginlocal_addr本地服务地址
plugin_crt_pathHTTPS 所需的证书文件
plugin_key_pathHTTPS 所需的密钥文件
plugin_host_header_rewrite如果配置,发送给本地服务的请求的 Host 字段会被修改
plugin_header{header name}发送给本地服务的请求会被加上指定的 header 字段

https2https

将本地的 HTTPS 服务以 HTTPS 的形式暴露出去。

参数可选描述
pluginlocal_addr本地服务地址
plugin_crt_pathHTTPS 所需的证书文件
plugin_key_pathHTTPS 所需的密钥文件
plugin_host_header_rewrite如果配置,发送给本地服务的请求的 Host 字段会被修改
plugin_header{header name}发送给本地服务的请求会被加上指定的 header 字段

最后修改 March 19, 2021: update docs (f1b297a)