Force a specific IP for outgoing WG traffic with SNAT?

Ashish SHUKLA at
Fri Mar 17 19:43:53 UTC 2023

On 2023-02-17 00:37, Roman Mamedov wrote:
> Hello,
> I'm trying to move all my WG communication with peers to a non-primary
> IP of my server.
> It has IPs added like this:
>     inet6 2001:db8::ca6c/128 scope global deprecated
>        valid_lft forever preferred_lft 0sec
>     inet6 2001:db8::1/128 scope global nodad
>        valid_lft forever preferred_lft forever
> What I tried:
>   ip6tables -t nat -I POSTROUTING -d 2000::/3 -p udp --dport 51820 -j
> SNAT --to-source 2001:db8::ca6c
> Also tried to filter by --sport, and also briefly without a port filter 
> at all.
> This has zero effect, as shown by tcpdump all the WG traffic still
> originates from 2001:db8::1
> Does anyone have an idea why is that? Thanks

Did you try filtering based on fwmark ?

            The configuration file format is based on INI. There are two 
top level sections -- Interface and Peer. Multiple Peer sections may be 
specified, but only one Interface section may be specified.

            The Interface section may contain the following fields:

            •      PrivateKey — a base64 private key generated by wg 
genkey. Required.

            •      ListenPort — a 16-bit port for listening. Optional; if 
not specified, chosen randomly.

            •      FwMark — a 32-bit fwmark for outgoing packets. If set 
to 0 or "off", this option is disabled. May be specified in hexadecimal 
by prepending "0x". Optional.


"It could be that the purpose of your life is only to serve as a warning 
to others." (Ashleigh Brilliant)

More information about the WireGuard mailing list