Coder Social home page Coder Social logo

wg-random's Introduction

Agnostic Wireguard VPN Client

A tool that utilizes the Wireguard CLI (wg and wg-quick) to establish a Wireguard VPN connection using Wireguard by randomly selecting a configuration file stored in /etc/wireguard

Requirements

The wg-random command must run with sudo, as root privileges are required to run the Wireguard CLI commands.

Usage

The following commands must run with sudo

# To start the vpn:
wg-random up
# To stop the vpn:
wg-random down
# To view the status of the vpn:
wg-random status

Auto-start on boot

There different ways of doing this. The approach presented here will be using systemd, but one could for instance use crontab for this as well.

Steps

  1. Verify systemd is installed on your system by running systemctl --version
  2. Copy the wg-random script to /usr/local/bin
  3. Copy the wg-random.service service file to /etc/systemd/system.
  4. Run systemctl daemon-reload
  5. Run systemctl enable wg-random.service

The service should not be started/stopped to control the status of the VPN. This is merely a way to have the VPN auto-start on boot. To start/stop the VPN after the device has been booted, the wg-random command should be executed directly.

TODO

  • Option to block non VPN communication with iptables
  • Additional option to only select among configuration files containing a certain sub-string (useful for when the name of the configuration files contains regions and/or other properties)

wg-random's People

Contributors

tsonono avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.