From 2032d266047309ce970623ba16488a31d4961399 Mon Sep 17 00:00:00 2001 From: octeep Date: Wed, 14 Jun 2023 03:02:20 +0100 Subject: [PATCH] move instructions to another file --- README.md | 132 ++++++-------------------------------------------- UseWithVPN.md | 89 ++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 116 deletions(-) create mode 100644 UseWithVPN.md diff --git a/README.md b/README.md index 695d294..97eebf3 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ [![Documentation](https://img.shields.io/badge/godoc-wireproxy-blue)](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 - [![Stargazers over time](https://starchart.cc/octeep/wireproxy.svg)](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.