From 6cfc2a86f84b5e758e0686ecbde4da073f186ce9 Mon Sep 17 00:00:00 2001 From: Shtorm <108103062+shtorm-7@users.noreply.github.com> Date: Mon, 21 Sep 2026 02:52:33 +0300 Subject: [PATCH] wireguard: Add random_trailers and disable_cookies amnezia options --- option/wireguard.go | 2 ++ protocol/wireguard/endpoint.go | 2 ++ transport/wireguard/endpoint.go | 6 ++++++ transport/wireguard/endpoint_options.go | 2 ++ 4 files changed, 12 insertions(+) diff --git a/option/wireguard.go b/option/wireguard.go index 580de8b3..ca965e3d 100644 --- a/option/wireguard.go +++ b/option/wireguard.go @@ -58,4 +58,6 @@ type WireGuardAmnezia struct { RejectAfterTime *badoption.Range[uint32] `json:"reject_after_time,omitempty"` KeepaliveTimeout *badoption.Range[uint32] `json:"keepalive_timeout,omitempty"` MaxHandshakeAttempts *badoption.Range[uint32] `json:"max_handshake_attempts,omitempty"` + RandomTrailers bool `json:"random_trailers,omitempty"` + DisableCookies bool `json:"disable_cookies,omitempty"` } diff --git a/protocol/wireguard/endpoint.go b/protocol/wireguard/endpoint.go index c2263a74..9285f6ff 100644 --- a/protocol/wireguard/endpoint.go +++ b/protocol/wireguard/endpoint.go @@ -103,6 +103,8 @@ func NewEndpoint(ctx context.Context, router adapter.Router, logger log.ContextL RejectAfterTime: options.Amnezia.RejectAfterTime, KeepaliveTimeout: options.Amnezia.KeepaliveTimeout, MaxHandshakeAttempts: options.Amnezia.MaxHandshakeAttempts, + RandomTrailers: options.Amnezia.RandomTrailers, + DisableCookies: options.Amnezia.DisableCookies, } } networkManager := service.FromContext[adapter.NetworkManager](ctx) diff --git a/transport/wireguard/endpoint.go b/transport/wireguard/endpoint.go index a2108279..eed5478d 100644 --- a/transport/wireguard/endpoint.go +++ b/transport/wireguard/endpoint.go @@ -239,6 +239,12 @@ func (e *Endpoint) Start(postStart bool) error { if e.options.Amnezia.MaxHandshakeAttempts != nil { ipcConf.WriteString("\nmax_handshake_attempts=" + e.options.Amnezia.MaxHandshakeAttempts.String()) } + if e.options.Amnezia.RandomTrailers { + ipcConf.WriteString("\nrandom_trailers=true") + } + if e.options.Amnezia.DisableCookies { + ipcConf.WriteString("\ndisable_cookies=true") + } } for _, peer := range e.peers { ipcConf.WriteString(peer.GenerateIpcLines()) diff --git a/transport/wireguard/endpoint_options.go b/transport/wireguard/endpoint_options.go index 50161643..83cc6843 100644 --- a/transport/wireguard/endpoint_options.go +++ b/transport/wireguard/endpoint_options.go @@ -74,4 +74,6 @@ type AmneziaOptions struct { RejectAfterTime *badoption.Range[uint32] KeepaliveTimeout *badoption.Range[uint32] MaxHandshakeAttempts *badoption.Range[uint32] + RandomTrailers bool + DisableCookies bool }