VPN_Tools/Mullvad/Mullvad_Connectivity_Check
2025-02-08 09:02:39 +00:00
..
LICENSE Migrated Mullvad VPN Connectivity checker from https://git.ncltech.co.uk/phil/VPN_Connectivity_Alert to this project 2025-02-08 09:02:39 +00:00
mullvad_vpn_check.sh.sh Migrated Mullvad VPN Connectivity checker from https://git.ncltech.co.uk/phil/VPN_Connectivity_Alert to this project 2025-02-08 09:02:39 +00:00
README.md Migrated Mullvad VPN Connectivity checker from https://git.ncltech.co.uk/phil/VPN_Connectivity_Alert to this project 2025-02-08 09:02:39 +00:00

Mullvad VPN Check

Overview

This Bash script monitors the status of a Mullvad VPN connection. It checks if the system is connected to the Mullvad VPN, logs the connection status, and sends alerts via Discord if the VPN status changes.

Features

  • Checks the current VPN connection status using the Mullvad API.
  • Logs the VPN status to a temporary file.
  • Sends an alert to a Discord webhook when the VPN connection is lost.
  • Sends a recovery alert when the VPN connection is restored.

Requirements

  • A system running Bash (Linux/macOS)
  • curl and jq installed
  • A valid Discord webhook URL

Installation

  1. Clone this repository or download the script.

2_ Ensure you have curl and jq installed:

sudo apt install curl jq  # For Debian-based systems
sudo dnf install curl jq  # For Fedora-based systems
  1. Set up a Discord webhook and replace DISCORD_WEBHOOK_URL in the script with your webhook URL.

  2. Make the script executable:

chmod +x mullvad_vpn_check.sh

Usage

Run the script manually:

./mullvad_vpn_check.sh

To automate the script, add it to a cron job:

crontab -e

Add the following line to check every 5 minutes:

*/5 * * * * /path/to/mullvad_vpn_check.sh

How It Works

The script fetches JSON data from Mullvad's API.

It extracts the IP and ISP information.

It checks if the current IP is a Mullvad exit node.

If the VPN is disconnected, an alert is sent to the configured Discord webhook.

If the VPN is restored, a recovery alert is sent.

The connection status is logged to a temporary file for comparison.

Example Alerts

VPN Down Alert:

"[hostname] is not going through a Mullvad VPN connection."

Includes ISP, IP, and timestamp.

VPN Restored Alert:

"[hostname] is now going through a Mullvad VPN connection."

Includes ISP, IP, and timestamp.

License

This project is licensed under the MIT License.

Contributions

Contributions are welcome! Feel free to submit a pull request or open an issue.

Disclaimer

This script is provided as-is without any guarantees. Use at your own risk.