Use socat
and a middleman server to relay WireGuard
traffic
On the middleman server, install socat
:
sudo apt install socat
Suppose that your WireGuard
server listens at example.example.com:51820
, run the following command:
socat UDP4-LISTEN:51820,fork,reuseaddr UDP6:example.example.com:51820
Adjust UDP4
or UDP6
according to the actual need.
The fork
and reuseaddr
option enables multiple connections.
On the client, assuming that the IP address of the middleman server is 1.2.3.4
, simply change the Endpoint
from example.example.com
to 1.2.3.4
in the WireGuard
configuration, and you’re good to go.
This is especially useful when your server only has public IPv6 addresses but your client only has IPv4 connectivity. With a middleman server that has both public IPv4 and IPv6 addresses, the client can connect to the server through the middleman. However, this does not grant the client IPv6 connectivity.