ginuerzh
69b561f944
feat: add comprehensive HTTP e2e tests covering connector, TLS, probeResist, idleTimeout, and UDP relay
...
Adds 12 new HTTP handler test scenarios: HTTP connector (no-auth, auth, TLS
upstream), CONNECT tunnel (no-sniffing, bypass-403), probeResist (host, web,
file, knock), idleTimeout, and UDP relay over HTTP. Introduces
RunGostContainerWithFiles helper for mounting extra files into test containers.
2026-06-26 22:00:35 +08:00
ginuerzh
3c87a8b96e
chore(deps): bump go-gost/x to v0.12.5
2026-06-26 20:21:42 +08:00
ginuerzh
c9cfc440ad
build(deps): bump go-gost/x from v0.12.3 to v0.12.4
2026-06-25 20:50:53 +08:00
ginuerzh
c305f93703
chore(deps): bump go-gost/x to v0.12.3
2026-06-23 21:47:44 +08:00
ginuerzh
f638d8081f
build(deps): bump go-gost/x from v0.12.1 to v0.12.2
...
x v0.12.2 adds SO_REUSEPORT support for TCP listeners (#654 ).
2026-06-22 21:46:46 +08:00
ginuerzh
286c1615fd
build(deps): bump go-gost/x from v0.12.0 to v0.12.1
2026-06-21 22:55:44 +08:00
ginuerzh
b985e5138c
fix: use atomic int for multi-worker exit code and clean up cancellation
...
- Replace bare int with atomic.Int32 to fix data race on ret
- Replace wg.Add/go/defer wg.Done pattern with wg.Go (Go 1.22+)
- Pass context by value instead of pointer
- Add ctx.Err() guard to suppress fatal on cancellation errors
- Add ProcessState nil check before accessing ExitCode
- Move cancel() after wg.Wait() to avoid race where a successful
worker's deferred cancel kills siblings and triggers log.Fatal
2026-06-21 21:07:37 +08:00
ginuerzh
b628475871
fix: enable metrics before loading services
...
Move xmetrics.Enable(true) from run() to Start(), before loader.Load(),
so that listener wrappers can observe the enabled state at Init time
rather than after wrapper decisions have already been made.
2026-06-21 20:35:19 +08:00
ginuerzh
43dd0a6958
feat: register stdio listener for SSH ProxyCommand support
...
Adds blank import of x/listener/stdio to register the stdio listener.
Refs go-gost/gost#433
2026-06-21 15:40:41 +08:00
ginuerzh
9d00ad8c8f
build(deps): bump go-gost/x from v0.11.1 to v0.12.0
2026-06-20 22:15:57 +08:00
ginuerzh
1bebce0ed7
feat: register utls dialer for TLS ClientHello fingerprint simulation
...
Blank-import x/dialer/utls to enable the "utls" dialer type via
init() self-registration.
Refs go-gost/gost#31
2026-06-20 20:17:08 +08:00
ginuerzh
1178c4757f
feat(cmd): add -R auto-reload flag for periodic config refresh
...
Introduce -R <duration> flag (e.g., -R 30s, -R 1m) that triggers
periodic config reload. Combined with -C URL support, this enables
centralized fleet management where nodes poll a remote config server.
The reload goroutine reuses the existing SIGHUP reloadConfig path:
parser.Parse() → loader.Load() → p.run(cfg). When -R is zero
(default) behavior is unchanged; SIGHUP still works independently.
2026-06-20 20:12:11 +08:00
ginuerzh
73069f50e3
feat: support multiple -C config files
...
Change -C flag from string to stringList, allowing:
gost -C base.yml -C services.yml -C auth.yml
Closes go-gost/gost#150
2026-06-20 18:56:25 +08:00
ginuerzh
06ec0097f9
ci: harden docker/release/nightly GitHub Actions workflows
...
- buildx: adopt docker/metadata-action for image tags (replaces hand-rolled shell), add gha build cache, concurrency control, explicit checkout, and least-privilege permissions
- release: add explicit permissions and concurrency (no cancel-in-flight); drop dead UPX install step (disabled in .goreleaser.yaml, see #863 )
- trigger-nightly: add concurrency, replace archived dev-drprasad/delete-older-releases with native gh, and harden the 24h commit check
2026-06-19 19:11:25 +08:00
ginuerzh
396b0977bd
chore: bump x to v0.11.1
2026-06-19 09:29:14 +08:00
ginuerzh
6d80e06ab3
chore: bump x to v0.11.0
2026-06-17 22:32:51 +08:00
ginuerzh
e2447ce578
fix(e2e): use host network for Docker image builds in DinD environments
...
Docker-in-Docker containers cannot reach the internet via the default
bridge network, causing 'apk add' in the Dockerfile to hang indefinitely
and e2e tests to timeout after 10 minutes.
Add BuildOptionsModifier with NetworkMode=host to all FromDockerfile
definitions so the build step uses the host's network stack. This has
no negative impact on non-DinD environments where bridge networking
already works.
Also move GostBinPath flag and init() from main_test.go to utils.go
(non-test file) so the symbol is accessible across the package.
2026-06-06 20:34:24 +08:00
ginuerzh
811420e923
chore: bump x to include stateless UDP forwarding ( #853 )
2026-06-05 23:27:22 +08:00
ginuerzh
374b46dfe1
bump x to v0.10.10
2026-06-03 23:30:01 +08:00
ginuerzh
22edb92084
bump x to v0.10.10
2026-06-03 23:25:54 +08:00
ginuerzh
78a0a8c734
fix: disable UPX compression in Dockerfile to resolve #863 startup regression
2026-06-03 00:13:58 +08:00
ginuerzh
5639c90e98
bump x to v0.10.9
2026-06-02 23:54:13 +08:00
ginuerzh
36abf9bcd9
bump x to v0.10.8
2026-06-02 20:07:48 +08:00
ginuerzh
d584b7ac61
bump x to v0.10.7
2026-05-31 22:49:10 +08:00
ginuerzh
56e2a1c496
fix: disable UPX compression to resolve #863 startup regression
...
UPX --best/--lzma/--brute adds ~3s startup time on low-spec systems
(linux/arm) due to in-memory decompression on every invocation of gost -V.
Disabled by default; opt in via GORELEASER_UPX=true for release builds
that need it.
2026-05-31 22:25:57 +08:00
ginuerzh
b0bea19275
bump x to v0.10.6
2026-05-31 22:13:42 +08:00
ginuerzh
cd64f2edd3
bump x to v0.10.5
2026-05-31 19:50:49 +08:00
ginuerzh
5f04c84e32
bump core to v0.4.1
2026-05-31 19:40:28 +08:00
ginuerzh
600a64e611
bump x to v0.10.4
2026-05-31 17:47:52 +08:00
ginuerzh
3d6b16686b
bump x to v0.10.3
2026-05-29 00:29:26 +08:00
ginuerzh
44684d40c3
add CLAUDE.md with build, CLI, and lifecycle documentation
2026-05-23 00:00:56 +08:00
ginuerzh
2be36abe75
bump x to v0.10.1, go-shadowsocks2 to v0.1.3; add gost binary to .gitignore
2026-05-22 23:21:30 +08:00
ginuerzh
8db62785fa
Merge pull request #862 : Add e2e test cases for shadowsocks
...
Add comprehensive e2e tests covering TCP and UDP shadowsocks
connections with various cipher modes (aes-128-gcm, aes-256-gcm,
chacha20, 2022-blake3-aes-128, 2022-blake3-aes-256, including
multi-PSK variants).
2026-05-22 23:09:42 +08:00
ginuerzh
d4c9ef5056
add masque connector, dialer, and handler registrations; update x to v0.10.0
2026-05-21 23:03:49 +08:00
ginuerzh
e388426ec6
go1.26
2026-04-21 23:59:31 +08:00
ginuerzh
340ba32ef0
v3.2.6
2025-11-22 22:47:02 +08:00
ginuerzh
96551d5fa5
metrics: fix server conn wrapper ( #797 )
2025-10-11 22:07:41 +08:00
ginuerzh
8d05a6ed93
add multiple entrypoints for tunnel
2025-10-09 22:33:31 +08:00
ginuerzh
0348a16aa9
fix panic for channel close ( #779 )
2025-09-20 10:06:15 +08:00
ginuerzh
50934e0978
fix sniffing for websocket
2025-09-04 21:32:34 +08:00
ginuerzh
c2ed9c6f07
add service option for plugin
2025-08-29 23:38:29 +08:00
ginuerzh
3b9da4e260
go1.25
2025-08-21 22:53:28 +08:00
ginuerzh
f0a67a1108
fix bugs
2025-08-21 22:24:42 +08:00
ginuerzh
59c9638ce6
add bypass and admission matcher
2025-08-13 21:27:36 +08:00
ginuerzh
49fa28882f
fix issue #760
2025-08-10 19:01:10 +08:00
ginuerzh
08c617b54e
v3.2.3
2025-08-09 21:01:25 +08:00
ginuerzh
d03b0e2360
v3.2.2
2025-08-05 20:46:21 +08:00
ginuerzh
245d610baf
without cancel context
2025-08-05 20:25:24 +08:00
ginuerzh
f01f0c9215
fix ws listener
2025-08-05 00:19:51 +08:00
ginuerzh
9b6e9d9cae
add context for conn
2025-08-04 19:34:54 +08:00
ginuerzh
1a0e2b06ac
add proxyProtocol support for dialer
2025-08-03 15:38:57 +08:00
ginuerzh
de8bb498db
http2: added non-connect request support #749
2025-07-30 21:44:46 +08:00
ginuerzh
1f735d0649
v3.2.0
2025-07-29 09:15:55 +08:00
ginuerzh
d173d167da
fix tungo for windows and darwin
2025-07-28 21:21:33 +08:00
ginuerzh
b593fdb952
add upx for binary compression
2025-07-26 16:43:49 +08:00
ginuerzh
d448628fea
add tun2socks (tungo)
2025-07-26 16:43:22 +08:00
ginuerzh
0bfc7f10cd
add vtun handle and listener
2025-07-23 22:49:59 +08:00
ginuerzh
a24b29c8c2
get real client IP from request
2025-07-15 20:21:52 +08:00
ginuerzh
87af3da1b6
add src field for logger and recorder
2025-07-02 21:49:03 +08:00
ginuerzh
dc6fe595e0
read config from stdin #701
2025-06-28 18:20:28 +08:00
ginuerzh
db4a0a9259
goreleaser: added linux/loong64
2025-06-28 18:13:45 +08:00
ginuerzh
b51cecbbfd
add new web APIs
2025-06-25 21:31:22 +08:00
ginuerzh
66a260abd1
fix metrics
2025-06-24 21:23:00 +08:00
ginuerzh
f61bb2fd72
revert to go1.23
2025-02-18 21:43:03 +08:00
ginuerzh
4c2835db04
go1.24
2025-02-18 21:16:47 +08:00
ginuerzh
d662b1fd46
router handler: add cache for sd service
2025-02-09 16:19:40 +08:00
ginuerzh
015923fa5d
add entrypoint for router handler
2025-02-08 23:11:18 +08:00
ginuerzh
f66fce9d49
feat: add router handler & connector
2025-02-07 15:51:51 +08:00
ginuerzh
982a93eee4
add limiter.scope option for service
2025-01-20 23:27:04 +08:00
ginuerzh
758251d3f9
update go.mod
2025-01-10 21:50:18 +08:00
ginuerzh
a1e48e164b
update config parsing
2025-01-10 21:41:55 +08:00
ginuerzh
581dd74bbb
add config hot reload
2025-01-08 23:16:55 +08:00
ginuerzh
3c7a984aa3
v3.0.0
2024-12-31 20:19:49 +08:00
ginuerzh
2a9b7e7d9b
fix panic for stats wrapper
2024-12-27 20:43:42 +08:00
ginuerzh
ab2b9714ee
add traffic reset for stats observer
2024-12-24 20:13:40 +08:00
ginuerzh
6d38c24d88
handle tls for tunnel entrypoint
2024-12-23 21:35:58 +08:00
ginuerzh
f376db2000
fix issue #625
2024-12-18 19:06:59 +08:00
ginuerzh
161d96f582
fix observer for http2
2024-12-16 20:49:41 +08:00
ginuerzh
128c0c3117
update go.sum
2024-12-11 22:31:42 +08:00
ginuerzh
66ce980c36
fix webtransport
2024-12-11 22:28:31 +08:00
ginuerzh
829148d3f8
fix ipv6 port for redirect
2024-12-11 22:05:30 +08:00
ginuerzh
c45f148a88
add unix domain socket support for api & metrics services
2024-11-22 22:51:16 +08:00
ginuerzh
fdc88af4ac
fix http keepalive for forwarding
2024-11-17 16:17:31 +08:00
ginuerzh
c41c5bf79a
add routing rule for node
2024-11-15 20:30:35 +08:00
ginuerzh
b3eeb338fb
add custom http response header for reverse proxy
2024-11-07 11:08:38 +08:00
ginuerzh
72f185bbf6
add compression flag option for http request
2024-11-02 20:43:44 +08:00
ginuerzh
a7599990a8
update deps
2024-11-01 18:19:23 +08:00
ginuerzh
17ca5600d3
update sample rate for websocket recording
2024-10-31 19:16:12 +08:00
ginuerzh
32ccfe483c
fix udp port forwarding
2024-10-22 22:57:18 +08:00
ginuerzh
1d0eb06938
sniffing: fix race condition when sniffing websocket frames
2024-10-20 19:24:40 +08:00
ginuerzh
1fa5067d14
sniffing: full websocket frame recording
2024-10-19 20:41:29 +08:00
ginuerzh
7ddfef85a5
sniffing websocket frame
2024-10-19 19:37:21 +08:00
ginuerzh
fa98777ab1
fix handler sniffing
2024-10-16 23:03:27 +08:00
ginuerzh
e53486efe0
add more fields for log
2024-10-16 22:17:54 +08:00
ginuerzh
881ebfad5b
add ClientAddr for websocket conn
2024-10-16 20:48:07 +08:00
ginuerzh
d5bb691b38
tunnel: fix http switching protocols
2024-10-15 19:38:43 +08:00
ginuerzh
24c13b861a
update tunnel entrypoint
2024-10-15 18:49:21 +08:00
ginuerzh
d6daa8bf56
update sniffer for forward & tunnel handler
2024-10-14 23:10:58 +08:00
ginuerzh
d18539ef66
recorder: add input/output traffic stats for handler recorder object
2024-10-11 20:39:29 +08:00
ginuerzh
48b0a690c5
update Dockerfile
2024-10-11 13:10:15 +08:00