An open API service indexing awesome lists of open source software.

https://github.com/nexoslabs/vpn-toolkit

A simple, lightweight, zero-dependency VPN management toolkit for Linux (Fedora, Ubuntu, Arch), supporting OpenVPN and WireGuard.
https://github.com/nexoslabs/vpn-toolkit

bash linux openvpn shell vpn wireguard

Last synced: 3 months ago
JSON representation

A simple, lightweight, zero-dependency VPN management toolkit for Linux (Fedora, Ubuntu, Arch), supporting OpenVPN and WireGuard.

Awesome Lists containing this project

README

          

[![Bash](https://img.shields.io/badge/Shell-Bash-informational?logo=gnu-bash&style=flat-square&color=cyan)](https://www.gnu.org/software/bash/)
[![GitHub code](https://img.shields.io/github/languages/code-size/nexoslabs/vpn-toolkit.svg?logo=github&style=flat-square&color=cyan)](https://github.com/nexoslabs/vpn-toolkit)
[![GitHub stars](https://img.shields.io/github/stars/nexoslabs/vpn-toolkit.svg?logo=github&style=flat-square&color=cyan)](https://github.com/nexoslabs/vpn-toolkit)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?logo=github&style=flat-square&color=cyan)](LICENSE)

# VPN Toolkit 🛡️

> A simple, lightweight, zero-dependency **VPN management toolkit** for Linux (Fedora, Ubuntu, Arch), supporting **OpenVPN** and **WireGuard**.
Easily manage VPN profiles, connect/disconnect, and add/remove configs — all from the command line.

---

## 🌟 Features

- 📋 List available VPN profiles (`myvpn list`)
- 📡 Show active VPN connections (`myvpn status`)
- 🔑 Connect to OpenVPN or WireGuard (`myvpn connect `)
- 🔒 Disconnect VPN (`myvpn disconnect `)
- ➕ Add new VPN configurations (`myvpn add openvpn ` / `myvpn add wireguard `)
- 🗑 Remove VPN configurations safely (`myvpn remove `)
- ❓ Zero extra dependencies (uses only Bash, OpenVPN, WireGuard, systemctl)

---

## 🚀 Installation

Run a single command to install the toolkit:

```bash
curl -s https://raw.githubusercontent.com/nexoslabs/vpn-toolkit/main/install.sh | sudo bash
```

This will:

1. Install **OpenVPN** and **WireGuard** if missing.
2. Download `myvpn.sh` into `/usr/local/bin/myvpn`.
3. Make it executable.

> No other dependencies are required.

---

## 🛠 Usage

```bash
# List available VPN profiles
myvpn list

# Show active VPN connections
myvpn status

# Connect to a VPN
myvpn connect

# Disconnect a VPN
myvpn disconnect

# Add a new OpenVPN configuration
myvpn add openvpn ~/Downloads/myvpn.ovpn

# Add a new WireGuard configuration
myvpn add wireguard ~/Downloads/home.conf

# Remove a VPN configuration
myvpn remove
```

### Example:

```bash
myvpn add openvpn ~/Downloads/work.ovpn
myvpn connect work
myvpn status
myvpn disconnect work
myvpn remove work
```

---

## 🤝 Contributing

We ❤️ contributions! Follow these steps to contribute:

1. 🍴 **Fork** the repository
2. 🌿 **Create** a new branch (`git checkout -b feature/AmazingFeature`)
3. 💾 **Commit** your changes (`git commit -m 'Add some AmazingFeature'`)
4. 🚀 **Push** to the branch (`git push origin feature/AmazingFeature`)
5. 🔃 **Open a Pull Request**

📖 _See our [Contribution Guidelines](CONTRIBUTING.md) for more details._

---

## 📄 License

This project is licensed under the **MIT License**. See the [LICENSE](LICENSE) file for details.

---

## 📬 Contact & Community

💬 Join us on **Discord**: [Click Here](https://discord.gg/H7pVc9aUK2)
🐦 **Follow on Twitter**: [@nexoslabs](https://twitter.com/nexoslabs)
📧 **Email**: [contact@nexoscreation.tech](mailto:contact@nexoscreation.tech)


Made with ❤️ by the @nexoslabs Team


⭐ Star us on GitHub!

## Notes

* OpenVPN configs should be placed in `/etc/openvpn/client/` and WireGuard configs in `/etc/wireguard/`.
* The toolkit relies on system-provided `wg-quick` and `openvpn-client@.service` for starting/stopping connections.
* Always run `myvpn connect ` with sudo if required by system services.

---

> Built with ❤️ for Linux users who want a **simple, fast VPN CLI manager**.