fatedier and GitHub
26742060b1
feat(client): add useSystemCa and combine it with trustedCaFile ( #5572 )
...
Move the frpc-only TLS option into the shared TLSConfig as
transport.tls.useSystemCa, replacing the unpublished useSystemRoots.
When set, frpc verifies the server with the system CAs; when
trustedCaFile is also set, its CAs are appended to the system pool so
both are trusted. Failures to load either source abort the connection
instead of falling back. Enabling the option without effective TLS is a
configuration error, and the field is rejected in frps transport.tls
and in both webServer.tls sections.
Fixes #5545
2026-10-18 16:00:02 +08:00
fatedier and GitHub
954f918d0c
docs: clear release notes ( #5570 )
2026-10-15 23:25:45 +08:00
fatedier and GitHub
031716afd1
Merge pull request #5569 from fatedier/fix/docker-workspace-lockfile
...
fix(docker): install web dependencies from the workspace lockfile
2026-10-15 13:01:59 +08:00
fatedier and GitHub
41ed2aecf8
test: align UDP compatibility protocol boundaries ( #5567 )
2026-10-14 10:49:55 +08:00
fatedier and GitHub
12b0093ccf
chore: prepare v0.71.1 release notes ( #5564 )
2026-10-13 10:46:29 +08:00
fatedier and GitHub
2542d11a62
fix(net): coordinate websocket handoff with listener shutdown ( #5563 )
2026-10-10 19:58:05 +08:00
fatedier and GitHub
1cc2dd8a23
fix(vhost): avoid request body access after CONNECT hijack ( #5562 )
2026-10-09 23:53:05 +08:00
fatedier and GitHub
1dbd44edd3
fix(msg): interrupt control reads during dispatcher shutdown ( #5561 )
2026-10-09 17:46:31 +08:00
fatedier and GitHub
55107d003d
fix: synchronize service startup and shutdown ( #5560 )
2026-10-09 12:27:12 +08:00
fatedier and GitHub
4cd4747525
fix: use Go 1.26 new expressions for pointer initialization ( #5559 )
2026-10-08 22:28:31 +08:00
fatedier and GitHub
d20a232996
test: strengthen health check coverage ( #5528 )
2026-09-10 01:28:26 +08:00
fatedier and GitHub
b0d840858f
ci: upgrade CircleCI config to 2.1 ( #5530 )
2026-09-10 00:17:12 +08:00
fatedier and GitHub
c5508627c4
docs: add rapidproxy as gold sponsor ( #5529 )
2026-09-10 00:02:51 +08:00
fatedier and GitHub
ebb4773c2c
docs: update release notes ( #5521 )
2026-08-29 14:41:43 +08:00
fatedier and GitHub
23ec9b4979
vnet: serialize VirtualNet route lifecycle ( #5512 )
...
* vnet: serialize virtual net route lifecycle
* test: remove fixed virtual net helper parameters
2026-08-28 10:56:05 +08:00
fatedier and GitHub
758f07d59e
deps: migrate to fatedier/yamux v0.2.0 ( #5498 )
2026-08-18 00:24:11 +08:00
fatedier and GitHub
25a4ba306a
ci: pin golangci-lint to v2.12.2 ( #5496 )
2026-08-17 00:48:09 +08:00
fatedier and GitHub
6c8a8d0a97
web: patch vulnerable transitive dependencies ( #5490 )
2026-08-13 01:12:34 +08:00
fatedier and GitHub
da04e1e07a
log: improve prefix handling ( #5489 )
2026-08-12 23:56:00 +08:00
fatedier and GitHub
71a2bf30f9
docs: add release note for domain validation fix ( #5475 )
2026-08-09 23:04:09 +08:00
fatedier and GitHub
a6a782bed4
config: reject case-insensitive subdomain domains ( #5474 )
2026-08-09 22:52:30 +08:00
fatedier and GitHub
223b44336c
ssh: serialize tunnel channel writes ( #5473 )
2026-08-09 19:12:12 +08:00
fatedier and GitHub
f6688e2a0d
client: reject invalid work connection addresses ( #5472 )
2026-08-09 18:39:21 +08:00
fatedier and GitHub
f666d97b64
limit: clamp bandwidth limiter burst ( #5471 )
2026-08-09 17:30:39 +08:00
fatedier and GitHub
5b68148f11
udp: handle closed forwarding channel ( #5470 )
2026-08-09 15:31:11 +08:00
fatedier and GitHub
1a3a872bd2
fix(frpc): respect feature gates in verify ( #5465 )
2026-08-04 12:53:10 +08:00
fatedier and GitHub
290017cb53
update version to 0.71.0 ( #5464 )
2026-08-03 23:37:36 +08:00
fatedier and GitHub
2291e8835f
feat: use binary codec for SUDP packets ( #5461 )
2026-07-31 16:53:16 +08:00
fatedier and GitHub
1ab59e763c
server: validate control pool counts ( #5459 )
2026-07-30 23:30:16 +08:00
fatedier and GitHub
9d45a55720
docs: add release note for #5456 ( #5458 )
2026-07-30 14:40:54 +08:00
fatedier and GitHub
effa496859
feat: add negotiated binary UDP packets ( #5456 )
2026-07-30 13:19:55 +08:00
fatedier and GitHub
5c6d761c12
chore(web): upgrade frontend dependencies ( #5454 )
2026-07-28 19:36:44 +08:00
fatedier and GitHub
3d89ab7ff1
build(web): upgrade auto import plugins ( #5453 )
2026-07-28 17:09:46 +08:00
fatedier and GitHub
f3828cbfdb
build(web): upgrade ESLint to v10 ( #5452 )
2026-07-28 16:10:29 +08:00
fatedier and GitHub
00c24e39bb
test(web): add frontend unit test baseline ( #5451 )
2026-07-28 01:27:35 +08:00
fatedier and GitHub
2175557d48
web: fix Vite config tsconfig includes ( #5450 )
2026-07-27 19:21:28 +08:00
fatedier and GitHub
de4b483710
web: patch vulnerable transitive dependencies ( #5449 )
2026-07-27 14:57:58 +08:00
fatedier and GitHub
2d63f6b1f9
web/frpc: fix visitor plugin validation for sudp ( #5448 )
2026-07-27 12:04:00 +08:00
fatedier and GitHub
18eef83b69
fix(client): synchronize graceful shutdown duration ( #5442 )
2026-07-23 13:55:00 +08:00
fatedier and GitHub
466a94f5d1
update quic-go dependency to v0.60.0 ( #5443 )
2026-07-23 12:28:10 +08:00
fatedier and GitHub
0e53833a2c
refactor: use standard library HKDF ( #5440 )
2026-07-23 01:17:37 +08:00
fatedier and GitHub
c23934bb67
web: update vulnerable transitive dependencies ( #5441 )
2026-07-23 01:16:40 +08:00
fatedier and GitHub
23512f577e
fix: upgrade go-oidc to v3.18.0 ( #5439 )
2026-07-23 00:00:47 +08:00
fatedier and GitHub
84b907a198
deps: bump golib to v0.8.1 ( #5437 )
2026-07-22 21:47:36 +08:00
fatedier and GitHub
f8fc3c6b1b
server: drop HTTP/1.1 h2c upgrade handling ( #5436 )
...
Use net/http Server.Protocols and the merged golib listener path instead of the deprecated h2c handler. Keep HTTP/1.1 and cleartext HTTP/2 prior-knowledge support, while intentionally dropping HTTP/1.1 Upgrade: h2c.
2026-07-22 19:55:42 +08:00
fatedier and GitHub
7dc7be930e
ssh: fix malformed exec payload panic ( #5428 )
2026-07-21 23:04:56 +08:00
fatedier and GitHub
d486018885
fix(server): prevent control replacement lifecycle leaks ( #5424 )
2026-07-21 18:09:09 +08:00
fatedier and GitHub
fe79598ee4
fix: fail fast on cross-compile errors ( #5420 )
2026-07-16 16:40:48 +08:00
fatedier and GitHub
269a26c5d5
fix(nathole): migrate STUN client to golib ( #5419 )
2026-07-16 13:11:45 +08:00
fatedier and GitHub
2886393f5b
ci: remove unsupported s390x image target ( #5412 )
2026-07-11 22:44:45 +08:00
fatedier and GitHub
5396947c7c
remove retired Go Report Card badge ( #5409 )
2026-07-11 15:59:51 +08:00
fatedier and GitHub
fe61093bc2
bump version to 0.70.0 ( #5406 )
2026-07-11 14:28:19 +08:00
fatedier and GitHub
54aeb2a7b0
feat(server): add typed frps v2 proxy specs ( #5405 )
2026-07-11 10:34:04 +08:00
fatedier and GitHub
84be1938e4
api: expose v2 proxy timestamps as unix seconds ( #5402 )
2026-07-09 14:47:19 +08:00
fatedier and GitHub
becee40715
docs: update API v2 release notes ( #5400 )
2026-07-08 15:54:16 +08:00
fatedier and GitHub
17e788d43b
refactor: clean up frps v2 frontend models ( #5399 )
2026-07-08 13:10:55 +08:00
fatedier and GitHub
68509f5d44
Add frps proxy traffic API v2 ( #5398 )
2026-07-08 02:05:28 +08:00
fatedier and GitHub
5cd722b177
feat: add system prune API v2 ( #5395 )
2026-07-07 13:00:53 +08:00
fatedier and GitHub
5876beceac
feat: add system info API v2 ( #5394 )
2026-07-07 02:00:44 +08:00
fatedier and GitHub
7fe152e3aa
web/frps: use API v2 for client and proxy details ( #5386 )
2026-06-30 01:33:57 +08:00
fatedier and GitHub
7c343fc6e7
web: bump esbuild to 0.28.1 and remove unused ElPopover type ( #5385 )
2026-06-29 23:21:22 +08:00
fatedier and GitHub
a3b3b35b69
feat(ui): default proxies view to all tab ( #5384 )
2026-06-29 22:49:08 +08:00
fatedier and GitHub
ae1c0504ec
feat(dashboard): add v2 client detail status ( #5381 )
2026-06-26 21:15:30 +08:00
fatedier and GitHub
393a533744
docs: add release note for duplicate config names ( #5379 )
2026-06-24 15:03:22 +08:00
fatedier and GitHub
940bde5c46
docs: update release notes ( #5377 )
2026-06-23 17:06:16 +08:00
fatedier and GitHub
14628df63c
test: cover tls2raw proxy protocol header ( #5376 )
2026-06-23 00:04:38 +08:00
fatedier and GitHub
54c6ccdfec
feat: remove proxies client filter ( #5375 )
2026-06-22 22:53:57 +08:00
fatedier and GitHub
9bde0b07de
feat: paginate dashboard clients and proxies via API v2 ( #5354 )
...
Move the frps dashboard Clients and Proxies views to the paginated
/api/v2/clients and /api/v2/proxies endpoints instead of fetching all
data at once, and extend server-side proxy search so the search box
keeps working under pagination.
Frontend:
- Add V2Envelope/V2Page types and getV2 HTTP helper to api/http.ts
- Add v2 paginated fetch functions to api/client.ts and api/proxy.ts
- Add ClientV2Info and ProxyV2Info types for v2 API responses
- Rewrite Clients.vue with server-side pagination, status/user search
filtering, and ElPagination component
- Rewrite Proxies.vue with server-side pagination, type tabs, client
dropdown filter, and a search box that passes q to the API
- Default page size 10, selectable sizes [10, 20, 50, 100]
Backend:
- Extend /api/v2/proxies q matching to also cover online proxy spec
fields: TCP/UDP remotePort and HTTP/HTTPS/TCPMux customDomains and
subdomain, so dashboard search no longer needs to scan every page
- Add controller_v2 tests for the new spec-field matching
2026-06-03 14:08:45 +08:00
fatedier and GitHub
c6c545289c
fix: normalize web package lockfile ( #5353 )
2026-06-02 13:39:37 +08:00
fatedier
503afe78b7
feat: add dashboard API v2 pagination endpoints ( #5351 )
2026-06-01 20:09:25 +08:00
fatedier and GitHub
9ea1d86f03
test: handle wire v2 compatibility baselines ( #5349 )
2026-06-01 17:52:57 +08:00
fatedier
ac3e82db4e
Release v0.69.1 ( #5348 )
2026-06-01 16:22:34 +08:00
fatedier
0773938d70
feat: bridge mixed wire protocol SUDP payloads ( #5347 )
...
SUDP payload codec follows transport wireProtocol; same-protocol v1/v1 and v2/v2 keep raw join; only mixed proxy/visitor protocols use message-aware bridge; no new capability/selection field.
2026-06-01 16:22:34 +08:00
fatedier
9bacce22a2
feat: use wire v2 framing for XTCP NatHoleSid ( #5343 )
2026-06-01 16:22:34 +08:00
fatedier
7f8d68b666
feat: use wire v2 framing for UDP workConn payload ( #5340 )
2026-06-01 16:22:34 +08:00
fatedier and GitHub
3e19ef9bfd
feat(ui): add xtcp tab to frps dashboard ( #5322 )
2026-05-21 22:18:00 +08:00
fatedier and GitHub
e20f974d61
feat(ui): add all proxies tab to frps dashboard ( #5321 )
2026-05-20 16:20:58 +08:00
fatedier and GitHub
a88e0e9a49
refactor: clean up code ( #5308 )
2026-05-12 11:13:50 +08:00
fatedier and GitHub
8666e3643f
protocol: add AEAD encryption negotiation to v2 wire control channel ( #5304 )
2026-05-06 10:43:47 +08:00
fatedier and GitHub
57bb9e80fe
test/e2e: add compatibility test suite for wire protocol version negotiation ( #5297 )
2026-04-27 18:28:22 +08:00
fatedier and GitHub
cef71fb949
plugin/http_proxy: fix fragmented CONNECT method detection and add read deadline ( #5296 )
2026-04-27 02:30:29 +08:00
fatedier and GitHub
410c4861c4
update Release.md ( #5295 )
2026-04-27 01:31:10 +08:00
fatedier and GitHub
e9464919d1
protocol: add v2 wire protocol with binary framing and capability negotiation ( #5294 )
2026-04-27 00:17:00 +08:00
fatedier and GitHub
e8dfd6efcc
web/frpc: use static imports for proxy and visitor route components ( #5286 )
2026-04-14 01:18:31 +08:00
fatedier and GitHub
a9a4416ecf
vhost/http: fix auth bypass when routeByHTTPUser is used with proxy-style requests ( #5285 )
2026-04-14 00:58:19 +08:00
fatedier and GitHub
d667be7a0a
update architecture pic ( #5270 )
2026-03-30 03:22:35 +08:00
fatedier and GitHub
31c3deb4f7
deps: bump golib to v0.6.0 ( #5269 )
2026-03-30 00:29:17 +08:00
fatedier and GitHub
31e271939b
test/e2e: allocate dynamic ports outside whitelist ranges in server whitelist test ( #5268 )
2026-03-30 00:21:30 +08:00
fatedier and GitHub
061c141756
update README.md ( #5267 )
2026-03-29 23:53:17 +08:00
fatedier and GitHub
76abeff881
ci: remove security vulnerability scan workflow ( #5266 )
2026-03-29 22:55:52 +08:00
fatedier
5ed02275da
docker: copy shared web directory for npm workspace builds
2026-03-20 14:39:35 +08:00
fatedier
60c4f5d4bd
ci: bump github actions to latest major versions ( #5251 )
2026-03-20 14:39:00 +08:00
fatedier and GitHub
d20e384bf1
doc: add agent runbooks directory with release process ( #5248 )
...
* web: remove redundant SCSS and CSS files superseded by shared
* doc: add agent runbooks directory with release process
2026-03-20 13:52:12 +08:00
fatedier and GitHub
c95dc9d88a
web: remove redundant SCSS and CSS files superseded by shared ( #5247 )
2026-03-20 13:08:18 +08:00
fatedier and GitHub
38a71a6803
web/frps: redesign frps dashboard with sidebar nav, responsive layout, and shared component workspace ( #5246 )
2026-03-20 03:33:44 +08:00
fatedier and GitHub
6cdef90113
web: bump dev dependencies in frpc and frps package-lock.json ( #5239 )
2026-03-16 23:22:42 +08:00
fatedier and GitHub
85e8e2c830
web/frpc: redesign frpc dashboard with sidebar nav, proxy/visitor list and detail views ( #5237 )
2026-03-16 09:44:30 +08:00
fatedier and GitHub
ff4ad2f907
auth/oidc: fix eager token fetch at startup, add validation and e2e tests ( #5234 )
2026-03-15 22:29:45 +08:00
fatedier and GitHub
6b1be922e1
add AGENTS.md and CLAUDE.md, remove them from .gitignore ( #5232 )
2026-03-12 00:21:31 +08:00
fatedier and GitHub
4f584f81d0
test/e2e: replace sleeps with event-driven waits in chaos/group/store tests ( #5231 )
...
* test/e2e: replace sleeps with event-driven waits in chaos/group/store tests
Replace 21 time.Sleep calls with deterministic waiting using
WaitForOutput, WaitForTCPReady, and a new WaitForTCPUnreachable helper.
Add CountOutput method for snapshot-based incremental log matching.
* test/e2e: validate interval and cap dial/sleep to remaining deadline in WaitForTCPUnreachable
2026-03-12 00:11:09 +08:00