WireGuard Relay

Use socat and a middleman server to relay WireGuard traffic

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.

References

https://www.redhat.com/sysadmin/getting-started-socat

Content Licensed under CC BY-SA 4.0. Code licensed under the MIT License.