diff --git a/README.md b/README.md
index c99a939..695d294 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,7 @@
[](https://pkg.go.dev/github.com/octeep/wireproxy)
A wireguard client that exposes itself as a socks5/http proxy or tunnels.
+A straight fork of pufferffish/wireproxy
# What is this
`wireproxy` is a completely userspace application that connects to a wireguard peer,
@@ -14,11 +15,7 @@ interface for whatever reasons.
# Why you might want this
- You simply want to use wireguard as a way to proxy some traffic.
- You don't want root permission just to change wireguard settings.
-
-Currently, I'm running wireproxy connected to a wireguard server in another country,
-and configured my browser to use wireproxy for certain sites. It's pretty useful since
-wireproxy is completely isolated from my network interfaces, and I don't need root to configure
-anything.
+- You want to use firefox tabs with custom VPN services
# Feature
- TCP static routing for client and server
@@ -51,18 +48,116 @@ Arguments:
```
# Build instruction
+GO is required for build.
+
+On a Mac with homebrew: `brew install go`
+
+Once GO is installed:
+
```
git clone https://github.com/octeep/wireproxy
cd wireproxy
make
```
-# Sample config file
+# Getting a Wireguard Server
+You can create your own wireguard server using a host service like DigitalOcean,
+or you can get a VPN service that provides WireGuard configs.
+
+I recommend ProtonVPN, because it is highly secure and has a great WireGuard
+config generator.
+
+Simply go to https://account.protonvpn.com/downloads and scroll down to the
+wireguard section to generate your configs, then paste into the apporpriate
+section below.
+
+# Simple Setup for multiple SOCKS configs for firefox
+
+Create a folder for your configs and startup scripts. Can be the same place as
+this code. That path you will use below. For reference this text uses
+`/Users/jonny/vpntabs`
+
+For each VPN you want to run, you will download your wireguard config and name
+it appropriately (e.g. `ProtonUS.adblock.server.conf`) and then create two new
+files from those below with similar names (e.g. `ProtonUS.adblock.conf` and
+`ProtonUS.adblock.sh`)
+
+You will also create a launch script, the reference below is only for macOS. The
+naming should also be similar (e.g.
+`/Users/jonny/Library/LaunchAgents/com.ProtonUS.adblock.plist`)
+
+## Config File
+Make sure you use a unique port for every separate server
+I recommend you set proxy authentication, you can use the same user/pass for all
+```
+# Link to the Downloaded config
+WGConfig = /Users/jonny/vpntabs/ProtonUS.adblock.server.conf
+
+# Used for firefox containers
+[Socks5]
+BindAddress = 127.0.0.1:25344 # Update the port here for each new server
+
+# Socks5 authentication parameters, specifying username and password enables
+# proxy authentication.
+#Username = ...
+# Avoid using spaces in the password field
+#Password = ...
+```
+
+## Startup Script File
+This is a bash script to facilitate startup, not strictly essential, but adds
+ease.
+Note, you MUST update the first path to wherever you installed this code to.
+Make sure you use the path for the config file above, not the one you downloaded
+from e.g. protonvpn.
+```
+#!/bin/bash
+/Users/jonny/wireproxy/wireproxy -c /Users/jonny/vpntabs/ProtonUS.adblock.conf
+```
+
+## MacOS LaunchAgent
+To make it run every time you start your computer, you can create a launch agent
+in `$HOME/Library/LaunchAgents`. Name reference above.
+
+That file should contain the following, the label should be the same as the file
+name and the paths should be set correctly:
+
+```
+
+
+
+
+ Label
+ com.ProtonUS.adblock
+ Program
+ /Users/jonny/vpntabs/ProtonUS.adblock.sh
+ RunAtLoad
+
+ KeepAlive
+
+
+
+```
+
+To enable it, run
+`launchctl load ~/Library/LaunchAgents/com.ProtonUS.adblock.plist` and
+`launchtl start ~/Library/LaunchAgents/com.PortonUS.adblock.plist`
+
+# Firefox Setup
+You will need to enable the Multi Account Container Tabs extension and a proxy extension, I
+recommend Sideberry, but Container Proxy also works.
+
+Create a container to be dedicated to this VPN, and then add the IP, port,
+username, and password from above.
+
+# Config file Reference
```
# The [Interface] and [Peer] configurations follow the same semantics and meaning
# of a wg-quick configuration. To understand what these fields mean, please refer to:
# https://wiki.archlinux.org/title/WireGuard#Persistent_configuration
# https://www.wireguard.com/#simple-network-interface
+# Note: these first two sections are what you get from ProtonVPN. You can paste
+# those sections below, overwriting what is already there.
[Interface]
Address = 10.200.200.2/32 # The subnet should be /32 and /128 for IPv4 and v6 respectively
# MTU = 1420 (optional)
@@ -79,19 +174,21 @@ Endpoint = my.ddns.example.com:51820
# and it forwards any TCP traffic received to the specified target via wireguard.
# Flow:
# --> localhost:25565 --(wireguard)--> play.cubecraft.net:25565
-[TCPClientTunnel]
-BindAddress = 127.0.0.1:25565
-Target = play.cubecraft.net:25565
+#[TCPClientTunnel]
+#BindAddress = 127.0.0.1:25565
+#Target = play.cubecraft.net:25565
# TCPServerTunnel is a tunnel listening on wireguard,
# and it forwards any TCP traffic received to the specified target via local network.
# Flow:
# --(wireguard)--> 172.16.31.2:3422 --> localhost:25545
-[TCPServerTunnel]
-ListenPort = 3422
-Target = localhost:25545
+#[TCPServerTunnel]
+#ListenPort = 3422
+#Target = localhost:25545
# Socks5 creates a socks5 proxy on your LAN, and all traffic would be routed via wireguard.
+# This is what you will use for Firefox Container Tabs. Change the port below if
+# you run multiple configs
[Socks5]
BindAddress = 127.0.0.1:25344
@@ -102,8 +199,8 @@ BindAddress = 127.0.0.1:25344
#Password = ...
# http creates a http proxy on your LAN, and all traffic would be routed via wireguard.
-[http]
-BindAddress = 127.0.0.1:25345
+#[http]
+#BindAddress = 127.0.0.1:25345
# HTTP authentication parameters, specifying username and password enables
# proxy authentication.
@@ -161,10 +258,11 @@ ListenPort = 5080
Target = service-three.servicenet:80
```
-## Donation
+# Donation
+This goes to the original creator, not me.
-## Stargazers over time
+# Stargazers over time
[](https://starchart.cc/octeep/wireproxy)