Wireproxy is a WireGuard client that acts as a SOCKS5/HTTP proxy server or tunnel. It is particularly useful when you need to connect to certain websites through a WireGuard peer but do not want or cannot configure a new network interface for various reasons.
In this article, we will cover how to create a SOCKS5 proxy using Wireproxy, as well as how to connect to it via the FoxyProxy extension for the Firefox browser.
Main reasons why Wireproxy might be the preferred choice:
Key Features of Wireproxy
Wireproxy supports multiple operating systems, including Linux, macOS, and Windows. There are two main installation methods:
Building from source ensures the latest code, while a precompiled version offers stability and convenience.
wireproxy_windows_amd64.tar.gz
.wireproxy.exe
in a convenient location, e.g., create a wireproxy
folder on your desktop.cd Desktop\wireproxy
Verify the utility works correctly:
wireproxy.exe -v
Ensure Go version 1.20 or higher is installed:
go version
If Go is not installed, use this Ubuntu 22.04 installation guide.
Clone the Wireproxy repository:
git clone https://github.com/octeep/wireproxy
cd wireproxy
Run the build process:
make
After the build completes, verify:
./wireproxy -v
After installing Wireproxy, the next step is configuring the utility.
A typical WireGuard configuration file looks like this:
[Interface]
PrivateKey = [Your_Private_Key]
Address = 10.0.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = [Server_Public_Key]
Endpoint = [Server_IP:Port]
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
Place the WireGuard configuration file in the wireproxy
folder you created earlier. In this example, the file is named wg.conf
.
In the wireproxy
directory, create wp.conf
for the SOCKS5 proxy configuration:
WGConfig = ./wg.conf
[Socks5]
BindAddress = 127.0.0.1:25344
Username = hostman
Password = hostman
WGConfig
specifies the path to your WireGuard config.BindAddress
defines the local proxy address and port.Username
and Password
are optional login credentials for the proxy.Linux:
./wireproxy -c wp.conf -n
Windows:
wireproxy.exe -c wp.conf -n
This checks that the configuration is correct without starting the proxy.
Linux:
./wireproxy -c wp.conf
Windows:
wireproxy.exe -c wp.conf
For background execution, use the -d
flag:
Linux:
./wireproxy -c wp.conf -d
Windows:
wireproxy.exe -c wp.conf -d
To use Wireproxy in a browser, specialized proxy management extensions can be used. In this example, we will configure FoxyProxy in Firefox, though similar steps apply to other browsers, e.g., Chrome with Proxy SwitchyOmega.
Visit any IP check service online to confirm that the IP address has changed. This verifies that your traffic is routed through Wireproxy.
FoxyProxy supports patterns to apply proxy usage only to specific sites.
After this, the proxy will only be used for websites specified in your patterns.
In this article, we covered the installation and configuration of Wireproxy, a tool for creating SOCKS5/HTTP proxies via WireGuard. Wireproxy’s standout feature is its ability to operate in user space, simplifying setup and usage, especially for users without administrative privileges. We also demonstrated integrating Wireproxy with browser extensions for convenient proxy management.