Skip to content

Lune1l/VPN-Watchtower

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VPN Killswitch

A Firefox extension that blocks web browsing when your public IP is not in a list of allowed IPs. A browser-integrated VPN killswitch to protect your privacy.

Une extension Firefox qui bloque la navigation web lorsque votre IP publique n'est pas dans une liste d'IPs autorisées. Un killswitch VPN intégré au navigateur pour protéger votre vie privée.

Version Firefox License


Features / Fonctionnalités

Two Protection Modes / Deux modes de protection

Mode Description (EN) Description (FR)
Killswitch Blocks ALL browsing when VPN is disconnected Bloque TOUTE la navigation quand le VPN est déconnecté
Blacklist Only blocks specific domains without VPN Bloque uniquement certains domaines sans VPN

Core Features / Fonctionnalités principales

  • Automatic IP monitoring - Periodic checks (10s to 5min intervals)
  • Multiple VPN IPs - Add several allowed IP addresses
  • Domain wildcards - Support for *.example.com patterns
  • Bilingual UI - French and English interface
  • Modern dark theme - Clean and intuitive interface
  • Block page - Informative page when access is denied
  • Persistent settings - Configuration saved locally

Screenshots / Captures d'écran

Popup Interface

Protected Blocked Blacklist Mode
Safe Blacklist

Block Page / Page de blocage

Block Page


Installation

Temporary Installation (Development)

  1. Open Firefox and navigate to about:debugging
  2. Click on "This Firefox" (or "Ce Firefox")
  3. Click "Load Temporary Add-on..."
  4. Select the manifest.json file from the extension folder

Permanent Installation

  1. Package the extension as a .xpi file
  2. Go to about:addons in Firefox
  3. Click the gear icon → "Install Add-on From File..."
  4. Select the .xpi file

Usage / Utilisation

Initial Setup / Configuration initiale

  1. Click the shield icon in the Firefox toolbar
  2. Connect to your VPN
  3. Click "Add current IP" to whitelist your VPN's IP address
  4. Enable the protection with the toggle switch

Killswitch Mode

When enabled, all websites are blocked if your IP changes from the allowed list. Perfect for:

  • Torrenting
  • Accessing geo-restricted content
  • Maximum privacy protection

Blacklist Mode

Only specific domains are blocked without VPN. Perfect for:

  • Streaming services (Netflix, Hulu, BBC...)
  • Accessing region-locked content
  • Keeping normal browsing accessible

Adding domains to blacklist

netflix.com         → Blocks netflix.com
*.netflix.com       → Blocks all subdomains (www.netflix.com, help.netflix.com, etc.)

How It Works / Fonctionnement

┌─────────────────────────────────────────────────────────┐
│                    VPN Killswitch                        │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  1. Extension checks public IP periodically              │
│     └── Uses: ipify.org, ipinfo.io, ip.sb               │
│                                                          │
│  2. Compares current IP with allowed list                │
│                                                          │
│  3. If IP not allowed:                                   │
│     ├── Killswitch Mode → Block ALL requests            │
│     └── Blacklist Mode  → Block only listed domains     │
│                                                          │
│  4. Redirects blocked requests to info page              │
│                                                          │
└─────────────────────────────────────────────────────────┘

Project Structure / Structure du projet

vpn-killswitch-extension/
├── manifest.json        # Extension configuration
├── popup.html           # Main popup interface
├── blocked.html         # Block page displayed when access denied
├── css/
│   └── popup.css        # Styles (dark theme)
├── js/
│   ├── background.js    # Core logic (IP check, request blocking)
│   ├── i18n.js          # Translations (FR/EN)
│   └── popup.js         # Popup UI logic
└── icons/
    ├── icon-48.svg
    └── icon-96.svg

Permissions

Permission Reason
webRequest Intercept and block web requests
webRequestBlocking Block requests before they complete
storage Save settings locally
<all_urls> Monitor all website requests

Privacy / Confidentialité

  • ❌ No data collection
  • ❌ No external servers (except IP check services)
  • ❌ No analytics or tracking
  • ✅ All data stored locally in your browser
  • ✅ Open source code

Contributing / Contribuer

Contributions are welcome! Feel free to:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.


Acknowledgments / Remerciements


Protect your privacy. Stay safe online.

About

A "simple" firefox VPN kill switch.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published