Skip to content

Commit 12c29c6

Browse files
authored
merge: PR #6 from nsvk13/main
Add AmneziaWG protocol support
2 parents 212593e + 0542124 commit 12c29c6

File tree

12 files changed

+362
-91
lines changed

12 files changed

+362
-91
lines changed

README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,17 +133,19 @@ scrape_configs:
133133
# And then, update relabel_configs in prometheus.yml job's config:
134134
# - source_labels: [sni]
135135
# target_label: sni
136-
- targets: [ "https://x.com" ]
137-
labels:
138-
ctx: "vless://e8d12cd5-b436-4ed1-967c-7001efe6cf06@1.2.3.4:443?type=tcp&encryption=none&security=reality&pbk=DF-3KL2W4RuNB2HgsEDmLqHLvvTTN4_QfwUCUn8Uhy0&fp=firefox&sni=web.max.ru&sid=dc8wq0b47450f9&spx=%2F&flow=xtls-rprx-vision#gate-raii-idx0"
139-
client: "gate-raii-idx0"
140-
protocol: "vless"
141136
- targets: [ "https://cloudflare.com" ]
142137
labels:
143138
# Wireguard connection must be supplied as: base64-encoded peer .ini config prefixed with 'wireguard://'
144139
ctx: "wireguard://W0ludGVyZmFjZV0KUHJpdmF0ZUtleSA9IFNObk5ON0l4YzV0ekNYS2FJNGZXNnEyOFYzbnhGS2YxcmNoYWt4bWdBbHM9CkFkZHJlc3MgPSAxMC4wLjAuMi8zMgpETlMgPSAxLjEuMS4xLCAxLjAuMC4xCk1UVSA9IDE0MjAKCiMgLTEKW1BlZXJdClB1YmxpY0tleSA9IHk2MTdkQ2dNM1g2bEtEanBkdDVhQ3dIWmROWW5OT0FwMFMyanFUbGpmZzA9CkFsbG93ZWRJUHMgPSAwLjAuMC4wLzAsIDo6LzAKRW5kcG9pbnQgPSAxLjIuMy40OjQ0Mw=="
145140
client: "wg-raii-idx0"
146141
protocol: "wireguard"
142+
- targets: [ "https://google.com" ]
143+
labels:
144+
# AmneziaWG connection with obfuscation parameters (Jc, Jmin, Jmax, S1, S2, H1-H4)
145+
# Must be supplied as: base64-encoded peer .ini config prefixed with 'awg://'
146+
ctx: "awg://W0ludGVyZmFjZV0KUHJpdmF0ZUtleSA9IFNObk5ON0l4YzN0emxYS2FJNGY4NnEyOFYzbnhGS2YzcmNoYWt4bWdCbHM9CkFkZHJlc3MgPSAxMC4wLjAuMi8zMgpETlMgPSAxLjEuMS4xLCAxLjAuMC4xCk1UVSA9IDE0MjAKSmMgPSAzCkptaW4gPSA1MApKbWF4ID0gMTAwMApTMSA9IDIwClMyID0gNzgKSDEgPSAzOTEzMTI3OApIMiA9IDgzMjEzODE4NQpIMyA9IDE0MzY5NTc4NTcKSDQgPSAxNjM1ODc3NzQ2CgpbUGVlcl0KUHVibGljS2V5ID0geTYxN2RDZ00zWDZsS0RqcGR0NWFHY0FaZE5Zbk5PQXAwUzNqYVRsamZnMD0KQWxsb3dlZElQcyA9IDAuMC4wLjAvMCwgOjovMApFbmRwb2ludCA9IDEuMi4zLjQ6Mjc3ODkK"
147+
client: "awg-raii-idx0"
148+
protocol: "amneziawg"
147149
```
148150
149151
> [!TIP]
@@ -170,8 +172,8 @@ You can configure periodic probes using a simple `curl` command in a cron job or
170172
- [x] VLESS XHTTP transport protocol support.
171173
- [x] CI/CD for basic build/test workflow.
172174
- [x] JSON Subscriptions VPN-url's support.
175+
- [x] AmneziaWG protocol support.
173176
- [ ] Whitebox YAML configuration w/ auto-reload.
174-
- [ ] AmneziaWG protocol support.
175177
- [ ] Authorization/OAuth 2.0 support.
176178
- [ ] Configuration for TLS protocol of HTTP probe support.
177179
- [ ] Response status/body validation.

examples/whitebox-sd-config.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@
88
# And then, update relabel_configs in prometheus.yml job's config:
99
# - source_labels: [sni]
1010
# target_label: sni
11-
- targets: [ "https://x.com" ]
12-
labels:
13-
ctx: "vless://e8d12cd5-b436-4ed1-967c-7001efe6cf06@1.2.3.4:443?type=tcp&encryption=none&security=reality&pbk=DF-3KL2W4RuNB2HgsEDmLqHLvvTTN4_QfwUCUn8Uhy0&fp=firefox&sni=web.max.ru&sid=dc8wq0b47450f9&spx=%2F&flow=xtls-rprx-vision#gate-raii-idx0"
14-
client: "gate-raii-idx0"
15-
protocol: "vless"
1611
- targets: [ "https://cloudflare.com" ]
1712
labels:
1813
# Wireguard connection must be supplied as: base64-encoded peer .ini config prefixed with 'wireguard://'
1914
ctx: "wireguard://W0ludGVyZmFjZV0KUHJpdmF0ZUtleSA9IFNObk5ON0l4YzV0ekNYS2FJNGZXNnEyOFYzbnhGS2YxcmNoYWt4bWdBbHM9CkFkZHJlc3MgPSAxMC4wLjAuMi8zMgpETlMgPSAxLjEuMS4xLCAxLjAuMC4xCk1UVSA9IDE0MjAKCiMgLTEKW1BlZXJdClB1YmxpY0tleSA9IHk2MTdkQ2dNM1g2bEtEanBkdDVhQ3dIWmROWW5OT0FwMFMyanFUbGpmZzA9CkFsbG93ZWRJUHMgPSAwLjAuMC4wLzAsIDo6LzAKRW5kcG9pbnQgPSAxLjIuMy40OjQ0Mw=="
2015
client: "wg-raii-idx0"
2116
protocol: "wireguard"
17+
- targets: [ "https://google.com" ]
18+
labels:
19+
# AmneziaWG connection with obfuscation parameters (Jc, Jmin, Jmax, S1, S2, H1-H4)
20+
# Must be supplied as: base64-encoded peer .ini config prefixed with 'awg://'
21+
ctx: "awg://W0ludGVyZmFjZV0KUHJpdmF0ZUtleSA9IFNObk5ON0l4YzN0emxYS2FJNGY4NnEyOFYzbnhGS2YzcmNoYWt4bWdCbHM9CkFkZHJlc3MgPSAxMC4wLjAuMi8zMgpETlMgPSAxLjEuMS4xLCAxLjAuMC4xCk1UVSA9IDE0MjAKSmMgPSAzCkptaW4gPSA1MApKbWF4ID0gMTAwMApTMSA9IDIwClMyID0gNzgKSDEgPSAzOTEzMTI3OApIMiA9IDgzMjEzODE4NQpIMyA9IDE0MzY5NTc4NTcKSDQgPSAxNjM1ODc3NzQ2CgpbUGVlcl0KUHVibGljS2V5ID0geTYxN2RDZ00zWDZsS0RqcGR0NWFHY0FaZE5Zbk5PQXAwUzNqYVRsamZnMD0KQWxsb3dlZElQcyA9IDAuMC4wLjAvMCwgOjovMApFbmRwb2ludCA9IDEuMi4zLjQ6Mjc3ODkK"
22+
client: "awg-raii-idx0"
23+
protocol: "amneziawg"

go.mod

Lines changed: 46 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -10,87 +10,98 @@ require (
1010
)
1111

1212
require (
13+
github.com/Masterminds/semver/v3 v3.4.0 // indirect
14+
github.com/amnezia-vpn/amneziawg-go v0.2.11 // indirect
1315
github.com/beorn7/perks v1.0.1 // indirect
1416
github.com/cespare/xxhash/v2 v2.3.0 // indirect
17+
github.com/emirpasic/gods/v2 v2.0.0-alpha // indirect
18+
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
19+
github.com/goccy/go-yaml v1.19.1 // indirect
20+
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 // indirect
21+
github.com/mattn/go-colorable v0.1.14 // indirect
1522
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
23+
github.com/onsi/ginkgo/v2 v2.27.2 // indirect
1624
github.com/prometheus/client_model v0.6.2 // indirect
17-
github.com/prometheus/common v0.66.1 // indirect
18-
github.com/prometheus/procfs v0.16.1 // indirect
19-
go.yaml.in/yaml/v2 v2.4.2 // indirect
25+
github.com/prometheus/common v0.67.4 // indirect
26+
github.com/prometheus/procfs v0.19.2 // indirect
27+
github.com/quic-go/qpack v0.6.0 // indirect
28+
github.com/rogpeppe/go-internal v1.14.1 // indirect
29+
github.com/tevino/abool/v2 v2.1.0 // indirect
30+
go.yaml.in/yaml/v2 v2.4.3 // indirect
31+
golang.zx2c4.com/wireguard v0.0.0-20250521234502-f333402bd9cb // indirect
2032
)
2133

2234
require (
23-
github.com/BurntSushi/toml v1.5.0 // indirect
24-
github.com/andybalholm/brotli v1.0.6 // indirect
35+
github.com/BurntSushi/toml v1.6.0 // indirect
36+
github.com/amnezia-vpn/amnezia-xray-core v1.8.16
37+
github.com/andybalholm/brotli v1.2.0 // indirect
2538
github.com/bytedance/gopkg v0.1.3 // indirect
2639
github.com/bytedance/sonic v1.14.2 // indirect
2740
github.com/bytedance/sonic/loader v0.4.0 // indirect
2841
github.com/clbanning/mxj/v2 v2.7.0 // indirect
2942
github.com/cloudflare/circl v1.6.1 // indirect
3043
github.com/cloudwego/base64x v0.1.6 // indirect
31-
github.com/dgryski/go-metro v0.0.0-20200812162917-85c65e2d0165 // indirect
44+
github.com/dgryski/go-metro v0.0.0-20250106013310-edb8663e5e33 // indirect
3245
github.com/emirpasic/gods v1.18.1 // indirect
3346
github.com/fsnotify/fsnotify v1.9.0 // indirect
34-
github.com/gabriel-vasile/mimetype v1.4.11 // indirect
47+
github.com/gabriel-vasile/mimetype v1.4.12 // indirect
3548
github.com/ghodss/yaml v1.0.1-0.20220118164431-d8423dcdf344 // indirect
3649
github.com/gin-contrib/sse v1.1.0 // indirect
3750
github.com/go-playground/locales v0.14.1 // indirect
3851
github.com/go-playground/universal-translator v0.18.1 // indirect
39-
github.com/go-playground/validator/v10 v10.28.0 // indirect
52+
github.com/go-playground/validator/v10 v10.30.0 // indirect
4053
github.com/goccy/go-json v0.10.5 // indirect
41-
github.com/goccy/go-yaml v1.18.0 // indirect
42-
github.com/gogf/gf/v2 v2.9.5
43-
github.com/google/btree v1.1.2 // indirect
44-
github.com/gorilla/websocket v1.5.3 // indirect
54+
github.com/gogf/gf/v2 v2.9.6
55+
github.com/google/btree v1.1.3 // indirect
56+
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
4557
github.com/gvcgo/vpnparser v0.2.7
4658
github.com/json-iterator/go v1.1.12 // indirect
4759
github.com/juju/ratelimit v1.0.2 // indirect
48-
github.com/klauspost/compress v1.18.0 // indirect
60+
github.com/klauspost/compress v1.18.2 // indirect
4961
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
5062
github.com/leodido/go-urn v1.4.0 // indirect
5163
github.com/magiconair/properties v1.8.10 // indirect
5264
github.com/mattn/go-isatty v0.0.20 // indirect
53-
github.com/miekg/dns v1.1.68 // indirect
65+
github.com/miekg/dns v1.1.69 // indirect
5466
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
55-
github.com/modern-go/reflect2 v1.0.2 // indirect
67+
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
5668
github.com/pelletier/go-toml v1.9.5 // indirect
5769
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
5870
github.com/pires/go-proxyproto v0.8.1 // indirect
5971
github.com/prometheus/client_golang v1.23.2
60-
github.com/quic-go/qpack v0.6.0 // indirect
61-
github.com/quic-go/quic-go v0.57.0 // indirect
72+
github.com/quic-go/quic-go v0.58.0 // indirect
6273
github.com/refraction-networking/utls v1.8.1 // indirect
6374
github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect
64-
github.com/sagernet/sing v0.5.1 // indirect
65-
github.com/sagernet/sing-shadowsocks v0.2.7 // indirect
75+
github.com/sagernet/sing v0.7.13 // indirect
76+
github.com/sagernet/sing-shadowsocks v0.2.9 // indirect
6677
github.com/seiflotfy/cuckoofilter v0.0.0-20240715131351-a2f2c23f1771 // indirect
6778
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
6879
github.com/ugorji/go/codec v1.3.1 // indirect
6980
github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e // indirect
7081
github.com/vishvananda/netlink v1.3.1 // indirect
7182
github.com/vishvananda/netns v0.0.5 // indirect
72-
github.com/xtls/reality v0.0.0-20251014195629-e4eec4520535 // indirect
73-
github.com/xtls/xray-core v1.251015.0
74-
go.opentelemetry.io/otel v1.38.0 // indirect
75-
go.opentelemetry.io/otel/trace v1.38.0 // indirect
83+
github.com/xtls/reality v0.0.0-20251116175510-cd53f7d50237 // indirect
84+
go.opentelemetry.io/otel v1.39.0 // indirect
85+
go.opentelemetry.io/otel/trace v1.39.0 // indirect
7686
go.uber.org/mock v0.6.0 // indirect
7787
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
7888
golang.org/x/arch v0.23.0 // indirect
79-
golang.org/x/crypto v0.45.0 // indirect
80-
golang.org/x/mod v0.29.0 // indirect
81-
golang.org/x/net v0.47.0
82-
golang.org/x/sync v0.18.0 // indirect
83-
golang.org/x/sys v0.38.0 // indirect
84-
golang.org/x/text v0.31.0 // indirect
85-
golang.org/x/time v0.12.0 // indirect
86-
golang.org/x/tools v0.38.0 // indirect
89+
golang.org/x/crypto v0.46.0 // indirect
90+
golang.org/x/mod v0.31.0 // indirect
91+
golang.org/x/net v0.48.0
92+
golang.org/x/sync v0.19.0 // indirect
93+
golang.org/x/sys v0.39.0 // indirect
94+
golang.org/x/text v0.32.0 // indirect
95+
golang.org/x/time v0.14.0 // indirect
96+
golang.org/x/tools v0.40.0 // indirect
8797
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
88-
golang.zx2c4.com/wireguard v0.0.0-20231211153847-12269c276173 // indirect
89-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect
98+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2 // indirect
9099
google.golang.org/grpc v1.77.0 // indirect
91-
google.golang.org/protobuf v1.36.10 // indirect
100+
google.golang.org/protobuf v1.36.11 // indirect
92101
gopkg.in/yaml.v2 v2.4.0 // indirect
93102
gopkg.in/yaml.v3 v3.0.1 // indirect
94-
gvisor.dev/gvisor v0.0.0-20250428193742-2d800c3129d5 // indirect
103+
gvisor.dev/gvisor v0.0.0-20251220162319-89151a08e48f // indirect
95104
lukechampine.com/blake3 v1.4.1 // indirect
96105
)
106+
107+
replace gvisor.dev/gvisor => gvisor.dev/gvisor v0.0.0-20250828211149-1f30edfbb5d4

0 commit comments

Comments
 (0)