下载:
Releases · fatedier/frp · GitHub
1.Frp0.58版本新特性
优化了tcpmux启用时心跳机制的机理(默认启用)。调整了heartbeatInterval的默认值为-1。这次更新确保在tcpmux活动时,客户端不再发送额外的心跳到服务器。
由于tcpmux包含自己的心跳系统,这个变化有效地减少了无需数据消耗,提高了客户端和服务器之间的通信效率。
连接frps版本低于v0.39.0可能会遇到兼容性问题,因为心跳机制发生了变化。
作为临时解决方案,可以将heartbeatInterval设置为30以保持与这些较旧版本的稳定连接。我们建议更新到最新的frps版本,以获取全功能和改进。
功能
- 在frps仪表盘上显示tcpmux代理。
- HTTP代理可以修改响应头部。例如,responseHeaders.set.foo = "bar"将添加一个新的头部foo: bar到响应中。
修复
- 当HTTP代理请求超时时,现在返回504,而不是404。
Tcpmux是什么:
TCPMUX(TCP MUX)是一种协议,它允许多个TCP连接在一个基础的TCP连接上进行multiplexing。换言之,它是一个管理和优化多个客户端和服务器之间通信的方法。
在FastResolv Proxy Server(FRPS)的背景下,TCPMUX用于提高代理服务器的性能和可扩展性。通过使用TCPMUX,FRPS可以处理来自不同的客户端的多个连接,以减少建立和管理单独连接的开销。
TCPMUX的一些主要优点包括:
- 改进性能:通过multiplexing多个连接到一个连接上,可以减少 latency 和开销相关联建立新的连接。
- 增加可扩展性:TCPMUX允许FRPS处理更多的并发连接,而不需要增加系统负载。
- 简化管理:使用TCPMUX,管理员可以更容易地管理和监控多个连接,因为所有连接都是multiplexing到一个连接上。
总之,TCPMUX是一种协议,它使得在单个TCP连接上进行高性能和可扩展通信变得可能,这对需要高性能和可扩展的应用程序,如FRPS非常有用。
2.Frp0.57版本新特性
https2http和https2https插件支持X-Forwared-For头部。
3.Frp0.56版本新特性
支持在 TOML/YAML/JSON 配置文件中使用 Go 模板语法来实现范围端口映射。
例如:
{{- range $_, $v := parseNumberRangePair "6000-6006,6007" "6000-6006,6007" }}}
[[proxies]]
name = "tcp-{{ $v.First }}"
type = "tcp"
localPort = {{ $v.First }}
remotePort = {{ $v.Second }}
{{- end }}
这将创建 8 个代理,例如 tcp-6000, tcp-6001, ... tcp-6007。
健康检查支持自定义请求头。
启用 Android 系统的兼容模式,以解决时区问题和默认 DNS 解析失败的问题。
4.Frp0.55版本新特性
最低支持的 Go 版本已经更新到 1.22。
新的 Go 版本中,TLS 1.2 是默认最小支持版本。
`--strict-config` 的默认值已经从 false 更改为 true。
如果您的配置文件使用不存在的配置项或包含拼写错误,应用程序将抛出错误。
这是从 v0.53.0 开始引入的启动参数,如果您想继续使用旧的行为,请需要PLICITLY 设置 `--strict-config=false`。
代理现在支持配置注释,这些注释将在 FRPS 仪表盘中显示。
改变:
将 kcp-go 和 beego log 的 fork 版本删除,kcp-go 现在使用上游版本,golib/log 替代了 beego log。
5.Frp0.54版本新特性
弃用:
使用下划线(_)在标记名称中是已废弃的,已经被 hyphen ( '-') 替代。
下划线格式将保持一段时间,直到在未来的版本中完全删除为止。例如,`--remote_port` 已经被替换为 `--remote-port`
Refresh 和 ClearOfflineProxies 两个按钮已经添加到 frps 的仪表盘中。
路由规则中的主机/域名匹配现在是大小写不敏感的。
6.Frp0.53版本新特性
添加了新的命令行参数 `--strict_config`,用于启用严格的配置验证模式。它将抛出错误而不是忽视未知字段。在未来的版本中,我们将将该参数的默认值设置为 true,以避免不良的配置。
支持 SSH 反向隧道功能。使用这个功能,您可以暴露本地服务,而不需要运行 frpc,只需要使用 SSH。SSH 反向隧道代理相比 frpc 代理有许多功能限制。当前支持的代理类型是 tcp、http、https、tcpmux 和 stcp。
更新了 frpc tcpmux 命令行参数,以支持配置 `http_user` 和 `http_pwd`。
更新了 frpc stcp/sudp/xtcp 命令行参数,以支持配置 `allow_users`。
修复:
frpc:在第一次登录尝试失败时返回代码 1,退出应用程序。
当 auth.method 设置为 oidc且 auth.additionalScopes 中包含 HeartBeats 时,如果获取 AccessToken 失败,应用程序将处于不可响应状态。
7.Frp0.52版本新特性
配置:我们现在支持 TOML、YAML 和 JSON 作为配置格式。
请注意,INI 已经被弃用,并将在未来的版本中删除。
在 TOML、YAML 或 JSON 中可以访问新特性。想要访问这些新特性的用户需要相应地更改配置格式。
破坏性更改
更改命令行启动访问者的方式,从 `frpc stcp --role=visitor xxx` 到 `frpc stcp visitor xxx`。
修改了命令行中的 `server_addr` 的语义,已经不包括端口。
添加了 `server_port` 参数以配置端口。
不再支持 TOML/YAML/JSON 中的范围端口映射。
8.Frp0.51版本新特性
frpc 现在支持通过启用配置 `protocol = wss` 连接到 frps 使用 WSS 协议。
frpc 现在支持通过 `stop` 命令停止服务。
服务 `Run` 现在支持将上下文传递给其中的方法。
修复了由 yamux 错误导致的一些插件中 WSS 无法正常工作的问题。
9.Frp0.50版本新特性
为加强安全性,设置了 `tls_enable` 和 `disable_custom_tls_first_byte` 的默认值为 true。
如果您想恢复到之前的默认值,您需要手动将这两个参数的值设置为 false。
添加了 `allow_users` 支持在 stcp、sudp 和 xtcp 中。
默认情况下,只允许同一个用户访问。使用 * 可以允许来自任何用户的访问。
现在,访问者配置支持连接到其他用户的代理服务器,使用 `server_user`。
添加了 fallback 支持,以指定的备用访问者连接替换_xtcp 连接失败时。
将 yamux 的默认值 `MaxStreamWindowSize` 增加到了 6MB,提高了高延迟场景下的流量转发率。