diff --git a/README.md b/README.md
index 695d294..97eebf3 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,6 @@
[](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,
@@ -15,7 +14,11 @@ 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.
-- You want to use firefox tabs with custom VPN services
+
+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.
# Feature
- TCP static routing for client and server
@@ -48,116 +51,21 @@ 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
```
-# 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.
+# Use with VPN
+Instructions for how to use with Firefox container tabs and auto-start on MacOS can be found [here](/UseWithVPN.md).
-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
+# Sample config file
```
# 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)
@@ -174,21 +82,19 @@ 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
@@ -199,8 +105,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.
@@ -258,11 +164,5 @@ ListenPort = 5080
Target = service-three.servicenet:80
```
-# Donation
-This goes to the original creator, not me.
-
-
-
# Stargazers over time
-
[](https://starchart.cc/octeep/wireproxy)
diff --git a/UseWithVPN.md b/UseWithVPN.md
new file mode 100644
index 0000000..8ca6a7d
--- /dev/null
+++ b/UseWithVPN.md
@@ -0,0 +1,89 @@
+# 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.