Official IVPN Desktop app

Overview

IVPN for Desktop (Windows/macOS/Linux)

IVPN for Desktop is the official IVPN app for desktop platforms. Some of the features include: multiple protocols (OpenVPN, WireGuard), Kill-switch, Multi-Hop, Trusted Networks, AntiTracker, Custom DNS, Dark mode, and more.
IVPN Client app is distributed on the official site www.ivpn.net.
IVPN application image

About this Repo

This is the official Git repo of the IVPN for Desktop app.

The project is divided into three parts:

  • Daemon is a core module of IVPN software built mostly using the Go language. It runs with privileged rights as a system service/daemon.
  • UI is a Graphical User Interface built using Electron.
  • CLI is a Command Line Interface.

Installation

These instructions enable you to get the project up and running on your local machine for development and testing purposes.

Requirements

Windows

npm; nsis2; Build Tools for Visual Studio 2019 ('Windows SDK 10.0', 'MSVC v142 C++ x64 build tools', 'C++ ATL for latest v142 build tools'); gcc compiler e.g. TDM GCC; Go 1.13+; Git

macOS

npm; Xcode Command Line Tools; Go 1.13+; Git

Linux

npm; packages: FPM, curl, rpm, libiw-dev; Go 1.13+; Git

Compilation

Windows

Instructions to build Windows installer of IVPN Client software (daemon+CLI+UI):
Use Developer Command Prompt for Visual Studio (required for building native sub-projects).

git clone https://github.com/ivpn/desktop-app.git
cd desktop-app/ui/References/Windows
build.bat

Compiled binaries can be found at: desktop-app/ui/References/Windows/bin

macOS

Instructions to build macOS DMG package of IVPN Client software (daemon+CLI+UI):

git clone https://github.com/ivpn/desktop-app.git
cd ivpn/desktop-app/ui/References/macOS
./build.sh -v <VERSION_X.X.X> -c <APPLE_DevID_CERTIFICATE>

Compiled binary can be found at: desktop-app/ui/References/macOS/_compiled

Linux

Linux Daemon

Instructions to build Linux DEB and RPM packages of IVPN software ('base' package: daemon + CLI):

git clone https://github.com/ivpn/desktop-app.git
cd desktop-app/cli/References/Linux/
./build.sh -v <VERSION_X.X.X>

Compiled packages can be found at desktop-app/cli/References/Linux/_out_bin

Manual installation IVPN daemon on Linux

Sometimes it is required to have the possibility to install IVPN binaries manually.
It's easy to do it by following the rules described below.

The ivpn-service is checking the existing of some required files (all files can be found in the repository)

VirtualBox:/opt/ivpn/etc$ ls -l
total 52
-r-------- 1 root root  2358 May 25 16:50 ca.crt
-rwx------ 1 root root   113 May 25 16:50 client.down
-rwx------ 1 root root  1927 May 25 16:50 client.up
-rwx------ 1 root root  5224 May 25 16:50 firewall.sh
-rw------- 1 root root 21524 May 26 20:52 servers.json
-r-------- 1 root root   636 May 25 16:50 ta.key
  1. Build the current project to get 'ivpn service' and 'ivpn cli' binaries.
  2. Create folder /opt/ivpn/etc
  3. Copy all required files (see above).
    Note! Files owner and access rights are important.
  4. Now you can start compiled service binary from the command line (just to check if it works).
    Note! The service must be started under a privileged user.
    Info You can use the command line parameter --logging to enable logging for service.
    4.1. Simply run compiled ivpn-cli binary to check if it successfully connects to the service (use separate terminal).
  5. If everything works - you can configure your environment to start ivpn-service automatically with the system boot (we are using systemd for such purposes)

Linux UI

Instructions to build Linux DEB and RPM packages of IVPN software 'UI' package:

git clone https://github.com/ivpn/desktop-app.git
cd desktop-app/ui/References/Linux
./build.sh -v <VERSION_X.X.X>

Compiled packages can be found at desktop-app-ui2/References/Linux/_out_bin

Note! It is required to have installed IVPN Daemon before running IVPN UI.

Versioning

Project is using Semantic Versioning (SemVer) for creating release versions.

SemVer is a 3-component system in the format of x.y.z where:

x stands for a major version
y stands for a minor version
z stands for a patch

So we have: Major.Minor.Patch

Contributing

If you are interested in contributing to IVPN for Desktop project, please read our Contributing Guidelines.

Security Policy

If you want to report a security problem, please read our Security Policy.

License

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

Authors

See the Authors file for the list of contributors who participated in this project.

Acknowledgements

See the Acknowledgements file for the list of third party libraries used in this project.

Comments
  • [feature] Keep unchanged the app configuration on logout

    [feature] Keep unchanged the app configuration on logout

    Feature request

    Currently, the IVPN Client erasing application configuration when a user logs out.

    This has to be changed:

    1. keep unchanged the app configuration on logout by default (with an option to clear it in the app)
    2. when FW is enabled then there should be a warning on the logout page that FW is enabled and all network access will be blocked (the same functionality have to be implemented in CLI)
    3. Necessary to implement the possibility to control the Firewall state even when the user is logged out: Add a switcher at the bottom of the login UI which shows the current firewall state. IF the 'always-on' firewall is enabled then when the user attempts to switch the firewall off we show a dialog box saying The always-on firewall is enabled. If you disable the firewall the 'always-on' feature will be disabled. [Disable Always-on firewall] / [Cancel].

    Additionally, implement the possibility to control Firewall "Always-on" state from CLI

    opened by stenya 14
  • DNS leaks when systemd-resolved is running

    DNS leaks when systemd-resolved is running

    Bug report

    Describe your environment

    • Device: Desktop
    • OS name and version: Arch Linux
    • IVPN app version: 3.7.0

    Describe the problem

    Steps to reproduce:

    1. systemctl enable --now systemd-resolved
    2. Connect to IVPN

    Observed Results:

    Whether /etc/resolv.conf is a symbolic link or not, just having resolved running will leak DNS. Many Linux distributions now use systemd. This is a issue.

    Expected Results:

    Allow IVPN and resolved to coexist

    Relevant Code:

    // TODO(you): code here to reproduce the problem
    
    priority: high type: bug platform: Linux Firewall 
    opened by ghost 13
  • (Linux) Change installation path from /usr/local/bin to /usr/bin

    (Linux) Change installation path from /usr/local/bin to /usr/bin

    Hi,

    I am not sure whether I should create this issue under bug report or feature request, but I figured I would just use feature request because I am suggesting a change.

    Feature request

    Moving the installation path to /usr/bin instead of /usr/local/bin to support rpm-ostree systems (like Fedora Silverblue) and avoid breaking atomic updates/inconsistency on systems like openSUSE MicroOS or openSUSE Tumbleweed/Leap.

    More information

    On rpm-ostree based systems like Fedora Silverblue, they currently cannot work with packages that use /usr/local/bin due to a bug on their part: https://github.com/coreos/rpm-ostree/issues/233. This practically make the IVPN app uninstallable on those systems :/

    On openSUSE distros, /usr/local/bin belong to the BTRFS subvolume @/usr/local is not part of the root subvolume (@/.snapshots/X/snapshot), and thus do not get snapshotted and does not rollback with the rest of the system should the user choose to do so. This essentially make the MicroOS variant lose its atomic update and cause in consistency with the Tumbleweed/Leap variants. The package manager (zypper) will think that IVPN is rolled back to an older version along with the rest of the system, while in reality the executable on /usr/local/bin is the newer version.

    And while I have not tested this on Ubuntu yet (I have on Fedora Silverblue and openSUSE), it seems like Ubuntu's ZFS partition layout also uses a seperate pool for /usr/local as well, and thus could probably lead to the same issue on openSUSE.

    Accoding to the Linux filesystem heirachy, /usr/local is supposed to contain programs the user installed from source, while /usr is for programs installed using the package manager. IVPN is distributed as pre compiled packages, and thus it should not be installed in /usr/local/bin in the first place. The issue I described with openSUSE and potentially Ubuntu with ZFS looks to be more like an issue with the IVPN package than the way they setup their BTRFS subvolumes/ZFS pools. I also think that it is unlikely rpm-ostree will support /usr/local as well, since you cannot make install anything on the host OS's immutable filesystem.

    Have you considered any alternative solutions or workarounds?

    Yes I have, but it is practically not doable on rpm-ostree systems. However, I don't think IVPN should be installed at /usr/local/bin in the first place, since it is being distributed as a .deb, .rpm, and pacman package that is being installed by the package manager.

    opened by tommytran732 13
  • IVPN DNS does not work in the Qubes AppVMs -> ProxyVM with the official IVPN client

    IVPN DNS does not work in the Qubes AppVMs -> ProxyVM with the official IVPN client

    Bug report

    Describe your environment

    • Device: Librem 14
    • OS name and version: Qubes 4.1.1 host, Fedora 36 guests
    • IVPN app version: 3.9.0

    Describe the problem

    If I install the official IVPN client in a ProxyVM, DNS in the AppVMs based on it will not work. I am aware that I can use a set up similar to https://mullvad.net/en/help/wireguard-on-qubes-os/, however, it is extremely cumbersome and I would like to use the official IVPN client instead.

    Steps to reproduce:

    1. Make a standalone Fedora 36 VM on Qubes. Set networking to use sys-firewall. Name this VM `sys-ivpn. (We need to use a standalone VM for the IVPN client here because login session gets lost after a reboot in a normal AppVM setup, and I will make a seperate issue for that later).
    2. Give sys-ivpn the network-manager service and tick the box "Provides Network".
    3. Install the IVPN client on it and log into IVPN.
    4. Make a new AppVM, set networking to use sys-ivpn.

    Observed Results:

    Observe that DNS is broken regardless of VPN protocol, killswitch and local LAN support settings. The user has to manually set a custom DNS server in /etc/resolv.conf for the AppVM to work.

    Expected Results:

    DNS is set up properly.

    Notes:

    This appears to be some issues with some VPN providers and not the other providers. In particular:

    • ProtonVPN works perfectly well with this set up, however it only supports OpenVPN.
    • Mullvad OpenVPN works with this setup. However, their Wireguard has the same issue as IVPN. I have made a report for that here: https://github.com/mullvad/mullvadvpn-app/issues/3803
    • Riseup and Windscribe work with this setup out of the box, however they have other issues with their killswitches and whatnot which I won't get into here.

    I suspect that this has something to do with the integration with NetworkManager. Note that if I do not give the network-manager service to the other VPN providers, they have the exact same issue: DNS is broken, though the packets are still routed through the VPN itself.

    platform: Linux 
    opened by tommytran732 12
  • loosing favs

    loosing favs

    Bug report

    Describe your environment

    • Device: macbook pro
    • OS name and version: Mojave
    • IVPN app version: 3.4.0

    Describe the problem

    favorite servers list is lost every couple of days, reassigning favs solves the problem temporarily, but the list turns out empty again after a few days (this is not linked to updating the client application)

    Steps to reproduce:

    1. use client, and assign favorite servers
    2. keep using for a few days
    3. try to open favs list

    Observed Results:

    list empty

    Expected Results:

    • What did you expect to happen? the list remains filled with my favs forever

    Relevant Code:

    // TODO(you): code here to reproduce the problem
    
    opened by ajay-gh 12
  • (Linux) ivpn login & logout always disables firewall

    (Linux) ivpn login & logout always disables firewall

    Bug report

    Describe your environment

    • Device: Laptop
    • OS name and version: fedora-33
    • IVPN app version: 3.3.30

    Describe the problem

    On login a previously enabled firewall is always disabled. This even happens when the firewall is configured to be always on.

    Steps to reproduce:

    1. Logout: ivpn logout
    2. Enable firewall: ivpn firewall -on
    3. Check that firewall is enabled: ivpn firewall -> Firwall is enabled, iptables rules present
    4. login: ivpn login .....
    5. Check firewall again -> Firewall is now disabled, iptables rules are removed.

    Observed Results:

    • Login resets iptables rules (disables firewall)

    Expected Results:

    • Login should preserve firewall state

    Relevant Code:

    ivpn logout
    ivpn firewall -on
    ivpn login .....
    ivpn firewall
    

    Background

    I am currently evaluating ivpn to be deployed onto managed clients. A crucial requirement is the functionality of the fail-close or "always on" firewall. This means, under absolutely no circumstances there must be any traffic leaking.

    For that I do deploy ivpn with the IsFwPersistant value in /opt/ivpn/mutable/settings.json changed to true. When I then start ivpn-service the firewall is set up as expected. But as soon as a user logs in, all firewall rules are truncated. Which is really bad.

    opened by Enteee 12
  • VPN must be disabled to access internet after changing WiFi networks

    VPN must be disabled to access internet after changing WiFi networks

    Bug report

    Describe your environment

    • Device: macbook Air m1
    • OS name and version: MacOS Monterey 12.5.1
    • IVPN app version: 3.9.8

    Describe the problem

    VPN must be disabled to access internet after changing WiFi networks.

    Steps to reproduce:

    1. Enable VPN on a known WiFi network
    2. Travel to new location with another known WiFi network
    3. Wake macbook from sleep

    Observed Results:

    • No internet access until disabling VPN. After that, re-enabling VPN continues to permit internet access

    Expected Results:

    • Internet access without needing to toggle VPN
    opened by paulrudy 10
  • (Linux) GUI build script does not handle aarch64 correctly

    (Linux) GUI build script does not handle aarch64 correctly

    Bug report

    Describe your environment

    • Device: Odroid N2 (an arm64 SoC device)
    • OS name and version: Armbian 11 "bullseye" (arm64 derivative of Debian 11 "bullseye")
    • IVPN app version: 3.8.7

    Describe the problem

    On an arm64 SoC device running Armbian 11 "bullseye", when uname -m returns aarch64, the iVPN GUI build fails because the Electron build artifacts are created at dist_electron/linux-arm64-unpacked, but the GUI build script at desktop-app/ui/References/Linux/build.sh expects these artifacts to be at a different location.

    If the desktop-app/ui/References/Linux/build.sh script is modified to set the ARCH variable to arm64 when uname -m returns aarch64, the GUI build proceeds to a successful completion.

    Steps to reproduce:

    1. Install Armbian 11 "bullseye" on an arm64 device. Likely, you can install any other distro which returns aarch64 for uname -m and the problem will be repro'd.
    2. Install all prerequisites to build the iVPN source code. I installed:
      • Go v1.18
      • nodejs 16 and npm v8.9.0
      • fpm v1.14.2
      • Other deps as listed in main readme
    3. Clone this repo.
    4. cd desktop-app/ui/References/Linux && ./build.sh -v 3.8.7

    Observed Results:

    • What happened? This could be a description, log output, etc.
      The GUI build fails with the following message:
    Architecture: aarch64
    ======================================================
    ============ Building UI binary ======================
    ======================================================
      "version": "3.8.7",
    *** Installing NPM molules ... ***
    
    <SNIP>
    
    INFO  Building app with electron-builder:
      • electron-builder  version=22.14.5 os=5.10.106-meson64
      • writing effective config  file=dist_electron/builder-effective-config.yaml
      • packaging       platform=linux arch=arm64 electron=14.2.9 appOutDir=dist_electron/linux-arm64-unpacked
     DONE  Build complete!
    [!] Folder not exists: '/root/IVPN_SOURCE_CODE/desktop-app/ui/References/Linux/../../dist_electron/linux-unpacked'
        Build IVPN UI project (do not forget to set correct version for it in 'package.json')
    
    

    Expected Results:

    • What did you expect to happen? I expected that the GUI build would complete successfully.

    If the desktop-app/ui/References/Linux/build.sh script is modified to set the ARCH variable to arm64 when uname -m returns aarch64, the GUI build does indeed proceed to a successful completion. In the section below, I have attached a patch file which, when applied to the source code, fixes this problem.

    Relevant Code:

    To fix this issue, apply the attached patch file at the root of the source code using patch -p1 < ui_build_fix_for_aarch64.patch.txt and then perform the GUI build on aarch64.

    ui_build_fix_for_aarch64.patch.txt

    platform: Linux build 
    opened by Kartikeya-IYER 10
  • Trusted Wifi but VPN stays connected

    Trusted Wifi but VPN stays connected

    Bug report

    Describe your environment

    • Device: Dell XPS 9380
    • OS name and version: Ubuntu Budgie 20.04.2 LTS
    • IVPN app version: 3.3.7

    Describe the problem

    After the first boot and login, IVPN starts automatically at startup, but even if a known Wifi is set as trusted, the VPN connection remains active.

    Steps to reproduce:

    1. set up IVPN to run automatically at startup.
    2. connect to Wifi and set it up as trusted.
    3. reboot
    4. log in and see that VPN is connected and Wifi is marked as trusted.

    Expected Results:

    • What did you expect to happen? I expected the VPN connection to be disabled automatically.
    type: bug 
    opened by mucke5 10
  • [Feature Request] Offer `-random` option on the CLI

    [Feature Request] Offer `-random` option on the CLI

    Feature request

    Description

    ivpn connect -any US always connects to us-tx because that is the first server in the servers.json file.

    ivpn connect -p ovpn -any US always connects to us-ca because that is the first server in the OpenVPN section of the servers.json file.

    Adding a -random CLI option offers a way to randomize the -any option for countries with multiple locations, like US, UK, and Canada.

    Describe alternatives you've considered

    Scripting a custom wrapper for the IVPN App to select a random server is currently the only option to achieve this behaviour.

    opened by jordan-ivpn 9
  • Homebrew Cask shows error connecting to daemon on launch

    Homebrew Cask shows error connecting to daemon on launch

    Bug report

    Describe your environment

    Occurs on any version of macOS (tested Big Sur and Monterey).

    Describe the problem

    When I install IVPN via the Homebrew Cask, launching it for the first time shows an error connecting to the daemon.

    I thought it might be because the application had been quarantined, but sudo xattr -rd com.apple.quarantine /Applications/IVPN.app/ and attempting to reconnect to the daemon produced the same result. Installing the application manually from the site over the cask does work, but brew install --cask ivpn --no-quarantine produces no change in results.

    The daemon is definitely loaded (verified sudo launchctl load /Library/LaunchDaemons/net.ivpn.client.Helper.plist), so I'm not sure why this is occurring.

    Screen Shot 2021-12-27 at 3 04 07 PM

    Steps to reproduce:

    1. Run "brew install --cask ivpn"
    2. Launch app

    Observed Results:

    The app never works or gets past the initial error screen

    Expected Results:

    Expect to be able to use the app normally.

    opened by nnothstine 9
  • [Feature Request] List of anti-trackers.

    [Feature Request] List of anti-trackers.

    It would be nice to have a list of anti trackers to choose from to be more flexible in ad/trackers blocking. For now there is an only option with "OISD" running implicitly with the optional "hardcore" toggle. It doesn't cover some edge cases, it's more like a general filter to satisfy the most people using it. It would be 2x nicer to have a possibility to add own anti-tracker lists by url with some update interval.

    opened by teksignal 0
  • Can't connect to the IVPN network with Wireguard: failed to initialize interface

    Can't connect to the IVPN network with Wireguard: failed to initialize interface

    Bug report

    Describe your environment

    • Device: Macbook Pro 16" 2022 (arm64)
    • OS name and version: MacOS 12.6.1
    • IVPN app version: 3.9.32 (reproduced also with 3.10.0 beta)

    Describe the problem

    Steps to reproduce:

    1. Try to connect to a server using the App, Wireguard, Port 2049. Same config used to work. Connecting with OpenVPN succeeds

    Observed Results:

    ...
    Dec 20 19:52:21.052 [servc ] ERROR service.go:569:(in github.com/ivpn/desktop-app/daemon/service.(*Service).keepConnection): Connection error: connection error: failed to initialize configuration: failed to initialize interface: exit status 1
    Dec 20 19:52:21.052 [prtcl ] ERROR protocol.go:1192:(in github.com/ivpn/desktop-app/daemon/protocol.(*Protocol).processRequest): connection error: failed to initialize configuration: failed to initialize interface: exit status 1
    ...
    

    Expected Results:

    Connecting to the server.

    opened by Heliosmaster 3
  • [Feature request] Option to prevent same provider Multi-Hop chain

    [Feature request] Option to prevent same provider Multi-Hop chain

    Feature request

    Details: https://github.com/ivpn/android-app/issues/16

    The ISP info must be shown in GUI: the ISP info has to be added to the 'location' description in the servers list. To think: Shall it be configurable from app settings?

    opened by stenya 0
  • [Feature request] UI: ability to open Firewall settings and AntiTracker settings by one click

    [Feature request] UI: ability to open Firewall settings and AntiTracker settings by one click

    Feature request

    Correspondent settings windows must be shown by clicking on the "Firewall"/"AntriTracker" labels in the main window.

    UI 
    opened by stenya 1
  • On Mac: keystroke to show the iVPN window any time

    On Mac: keystroke to show the iVPN window any time

    The iVPN window can be brought to the front of the screen with the following sequence

    • point (to the menu bar)
    • click to open the menu
    • point to the right menu item
    • click on "show iVPN" This looks short, but it does actually take very long - in particular if used many times a day. Could you please consider adding a simple keyboard shortcut, ideally one that can be selected by the user ? Thank you for a great service !!
    opened by ajay-gh 0
  • Libvirt with virtual machine manager can not connect to the internet.

    Libvirt with virtual machine manager can not connect to the internet.

    Bug report

    Describe your environment

    • Device: Asus ROG Zephyrus G15
    • OS name and version: Arch Linux x86_64, Linux Kernel - 6.0.9-arch1-g14-1
    • IVPN app version: 3.9.45

    Describe the problem

    When using libvirt(through libvirt-manager), can not connect to the internet.

    Steps to reproduce:

    1. Just enable firewall.

    Observed Results:

    • GuestOSes can not connect to the internet.
    opened by kdevg0 1
Releases(v3.10.0)
  • v3.10.0(Dec 5, 2022)

    [NEW] (Windows/Linux) UI: light/dark options for system tray icon
    [NEW] Ability to manage ‘Autoconnect on launch’ settings from CLI
    [NEW] Ability to manage ‘WiFi control’ settings from CLI
    [NEW] (Linux) ‘WiFi control’ option: ‘Autoconnect on joining WiFi networks without encryption’
    [IMPROVED] Diagnostic logs extended with additional data
    [FIX] (Linux) Firewall fails on some versions of Raspberry Pi OS

    Download IVPN Client for Windows
    SHA256: 13022a189ddc8608e052a60ff800cfd21ed854bdcefc1dde212a810cedadda7b

    Download IVPN Client for macOS (Intel)
    SHA256: d3a99cd45604e800108ecc8138cc106c4cf553743babc06a3cbb01f93fefbb68
    Download IVPN Client for macOS (M1)
    SHA256: 5acf2e20531fb3de0644bdd9fb57a27fcc7fa9628349f7b77ae095614e6b161d

    Download IVPN Client for Linux (DEB)
    SHA256: cae1e13e04dfc8c721d2adcb9712d99db443701cede02cc9b44ba349c1559cbf
    Download IVPN Client for Linux (RPM)
    SHA256: f775da2fa3b8feff97857b23d3db5e9224dd1d7007d95a1e2c73e722ff4d28b1

    Download IVPN Client UI for Linux (DEB)
    SHA256: 7acf5f2bf32d0fdf0d0bfdd92b700deb4e20af54d9caab571bef86172ae7a77e
    Download IVPN Client UI for Linux (RPM)
    SHA256: 899aae46263b8dec0e0681e1974c737a887afe9ffed0e5632600e9dfe287d54d

    Source code(tar.gz)
    Source code(zip)
  • v3.9.45(Nov 9, 2022)

    [FIX] Ability to send diagnostic logs

    Download IVPN Client for Windows
    SHA256: e6e3df093c44c83a87cbf538d39983945f9955fadaec3f57a1a23fdfc8fcd678

    Download IVPN Client for macOS (Intel)
    SHA256: 6768f6c79563ab0205604ba8b3513d033b4d4b5d456f9100556cecc8cf79cc8f
    Download IVPN Client for macOS (M1)
    SHA256: 3b91774e18b4e288d7794c5342002f7a90015d8cc2c637b1f13303dd3b06c5fd

    Download IVPN Client for Linux (DEB)
    SHA256: d9ba7d9ceeed05c2e8913a5c36ad67194319246c8de932c30e0623e50fdb804d
    Download IVPN Client for Linux (RPM)
    SHA256: 9330ca5f4dc6e8375410b4005368d910b95aedfe91bc47e030d0f8876e3882c3

    Download IVPN Client UI for Linux (DEB)
    SHA256: 114abc02f0c0b62965ac6904962ba1fd9703585cebb8b495e34bdd1de2c124c0
    Download IVPN Client UI for Linux (RPM)
    SHA256: 580e3bca37c35984ce7f96448195fa02a26c4a9073c40fcd537495fa71856c4f

    Source code(tar.gz)
    Source code(zip)
  • v3.9.43(Oct 28, 2022)

    [NEW] obfs4 support for OpenVPN connections
    [IMPROVED] UI: Eliminated the delay which sometimes occurred before showing dialogs in app settings
    [IMPROVED] UI: Migrated to latest frameworks
    [IMPROVED] (Linux) Removed dependency from the "which" command
    [FIX] UI: Mismatch of servers when changing entry/servers immediately one after the other
    [FIX] UI: The application did not connect to the last port selected
    [FIX] UI: The obfsproxy settings were disabled after changing the protocol
    [FIX] (macOS) The application was unusable when installed from Homebrew Cask
    [FIX] (macOS) Restoring DNS configuration after changing WiFi networks
    [FIX] (macOS) Automatic updates installer issue

    Download IVPN Client for Windows
    SHA256: 5bae4107305c33aed8c6c657965317a0a1ba6bf026d244d5da412bc5cccf98ad

    Download IVPN Client for macOS (Intel)
    SHA256: 0e167ddc6418338b4f163008ee418eb0a3d5d6c8ff487b065fd7429b3d286b19
    Download IVPN Client for macOS (M1)
    SHA256: ad0d9f1eae0a42759df1f1115f8edd1c9176f8af46516d6d2ada2958409e1a1e

    Download IVPN Client for Linux (DEB)
    SHA256: 033564a1d2cb4c45c064036628b70f0fbefba45796f8cdbd1ab091c89af430c4
    Download IVPN Client for Linux (RPM)
    SHA256: d58ff2255535d1a543824a24c6723d48da7c5af79509ac375952ee5ceee88fe0

    Download IVPN Client UI for Linux (DEB)
    SHA256: 56b52ced5fb494d11abc50dc3ea61375348bf6c8d247c70e5be702aa03e71787
    Download IVPN Client UI for Linux (RPM)
    SHA256: 64ec17d679355107c312c27c74591601d696738df6a2211d8b60966474de88b8

    Source code(tar.gz)
    Source code(zip)
  • v3.9.32(Sep 15, 2022)

    [NEW] Support for custom ports
    [NEW] Ability to adjust MTU value for WireGuard connections
    [NEW] (Linux) Ability to change DNS management method to directly modify the '/etc/resolv.conf' file
    [IMPROVED] CLI: -any option now connects to a random server
    [IMPROVED] Use the same fastest server configuration for OpenVPN and WireGuard
    [FIX] Uninstalling the app does not remove custom CLI settings
    [FIX] UI: App reconnects when clicking on the protocol section of the main panel
    [FIX] Minor UI fixes

    Download IVPN Client for Windows
    SHA256: 2b2df9a1e560b186e333d1020b0dc32d6879dbf00492cdb7b92603b458c4fcb9

    Download IVPN Client for macOS (Intel)
    SHA256: f2c5ff37ec33c427694ff8680f4e3567ae207ee24038eb7fe41faf7e05e1a417
    Download IVPN Client for macOS (M1)
    SHA256: 74a640f30c22a5197b26de7b2fbc4f2b21cdfe848ed7869ec13d6d94253bee35

    Download IVPN Client for Linux (DEB)
    SHA256: 77997488e180cbd2a7f770581cd0218bf237e4c4928f557dae14b9548ce1d8c3
    Download IVPN Client for Linux (RPM)
    SHA256: 88c364d4366c9bf75db376d3c511421eef493e3458c7f7499502f11a1078b8c0

    Download IVPN Client UI for Linux (DEB)
    SHA256: 24cc3909242ce883a7b70997afa49cf14b0865d0fbe10498e0903b4c95cf0ba5
    Download IVPN Client UI for Linux (RPM)
    SHA256: 5a74aedf7df9485083c3398d780fc59cdd8b7c2c63abfb67c8fcb681f55babc7

    Source code(tar.gz)
    Source code(zip)
  • v3.9.14(Aug 16, 2022)

  • v3.9.9(Aug 10, 2022)

  • v3.9.8(Aug 9, 2022)

    [NEW] (Windows/macOS) Option to take part in Beta testing
    [NEW] (macOS) Dock menu in macOS app
    [IMPROVED] Show specific hosts in the favorite menu of the system tray
    [IMPROVED] Updating account status
    [IMPROVED] Reworked UI for sending diagnostic logs
    [IMPROVED] CLI: Show specific host and obfsproxy status in the connection info
    [IMPROVED] (Windows) Updated: WireGuard v0.5.3; OpenVPN v2.5.7 (OpenSSL v1.1.1o)
    [IMPROVED] (macOS) Updated: WireGuard v0.0.20220316; OpenVPN v2.5.7 (OpenSSL v1.1.1o)
    [IMPROVED] (macOS/Linux) Removed unnecessary popup when shutting down
    [IMPROVED] (Linux) Implemented the DNS-change protection mechanism
    [FIX] (Linux) Applications in Split Tunnel were blocked by the firewall
    [FIX] (Linux) VPN's DNS server was missing after waking the system from suspend state on some Linux distributions
    [FIX] (macOS) Application won't close with Cmd+Q
    [FIX] Sometimes UI shows the wrong connection status after connecting to Fastest Server
    [FIX] UI: Update Port and obfsproxy status used in the CLI

    Download IVPN Client for Windows
    SHA256: 0b6ab6256a142070d0fb0244234ccd1ec1ddbe0fc631f6ab3c1cc04b035c30a2

    Download IVPN Client for macOS (Intel)
    SHA256: b64e2fe7ea8296a63cb3e75274c73379731d64dc492778214e6f3ae728e330d1
    Download IVPN Client for macOS (M1)
    SHA256: f915d4954c3f8be86f523b057bca2d976c221628458a8d4ffccfe520417e73f5

    Download IVPN Client for Linux (DEB)
    SHA256: a196f136a2271913767ab441e0a5e61be9eca81b15c0dfce13d422fdac4ccd5c
    Download IVPN Client for Linux (RPM)
    SHA256: 181945f51690fe6fcf17e3ebd50ce0b253e76e4633e22e26d0522550356cac29

    Download IVPN Client UI for Linux (DEB)
    SHA256: c818ff2dfb97dcb360d193adfa8aaa261758d1066383e5bed4369f08721e5559
    Download IVPN Client UI for Linux (RPM)
    SHA256: 3abc4235a6f905b7cdf76ef6e4dc49b29f9a715161e69351ed53f2e5b0d80c5a

    Source code(tar.gz)
    Source code(zip)
  • v3.9.0(Jul 21, 2022)

    [NEW] Ability to connect to a specific host in a location
    [NEW] (Linux) Snap package support
    [IMPROVED] Updating account status on every application start
    [IMPROVED] Fetch VPN connection ports info from the backend
    [IMPROVED] Warning about existing VPN connection when downgrading subscription plan
    [IMPROVED] (Linux) Using systemd-resolved for controlling DNS settings (when possible)
    [IMPROVED] (Linux) Upgrade retains user settings (applicable only for future updates)
    [IMPROVED] (Linux) Retain firewall configuration on upgrade (applicable only for future updates)
    [FIX] Communication with IVPN servers blocked by ISP’s proxy
    [FIX] (Linux) Intermittent issue with users logged out after upgrade (applicable only for future updates)
    [FIX] (Linux) Firewall rules: potential DNS leak via the link-local IPv6 addresses 

    Download IVPN Client for Windows
    SHA256: 45194bc1c45a0a71919ff8a65d873c116011d7c639f4ba51634d7ca99871755c

    Download IVPN Client for macOS (Intel)
    SHA256: 1401aebc95034a9f4ec78fec99cac37ea8af9f0723e2ad40848f02414c0749c8
    Download IVPN Client for macOS (M1)
    SHA256: 68f44e4bdc734cf659268ab4905d09384b7c7d7899f3a71fba6ae71732579bb4

    Download IVPN Client for Linux (DEB)
    SHA256: 9278a40f9afc8d0bf92a03c8fc00a216162e5ce1a7858e19f176806f0c581496
    Download IVPN Client for Linux (RPM)
    SHA256: 317a7ec94f3e473f2b9b034d0e807f27e38a9e0d29464809158a979eccab8c9b

    Download IVPN Client UI for Linux (DEB)
    SHA256: 05152ab69c8388ce75182e48c2b63fc48874a0467cd96952477f804d4b3b6488
    Download IVPN Client UI for Linux (RPM)
    SHA256: 1fcf3cd1d86a9dfd5a1e4181f5cbfe62aad3308ddb69aec6347382a7dc4ec94a

    Source code(tar.gz)
    Source code(zip)
  • v3.8.20(Jun 1, 2022)

    [NEW] UI: Ability to see detailed info about the application version
    [IMPROVED] UI: Displaying server info in system tray instead of ‘Random Server’ for Multi-Hop connections
    [IMPROVED] (Linux) ‘Allow LAN’: Monitoring changes in local interfaces configuration
    [IMPROVED] Minor UI improvements
    [FIX] (Linux) Enhanced firewall rules to avoid potential IP leaks
    [FIX] (Linux|macOS) Enhanced firewall rules to avoid potential DNS leaks
    [FIX] ‘Fastest Server’ detection issue when auto-connect on application launch
    [FIX] Keep paused after regeneration of the WireGuard keys
    [FIX] UI: Tray menu now shows only favorite servers for the current protocol
    [FIX] (Linux) DNS configuration issue after VPN resume
    [FIX] (Windows) Service crash when using specific configuration for custom DNS
    [FIX] (Windows) Split Tunnel configuration missing from Settings 

    Download IVPN Client for Windows
    SHA256: ee3eaa5dfc4de5ef3644e40c9a0920aa461f5f1288fc8717e01840ac941d4d99

    Download IVPN Client for macOS (Intel)
    SHA256: 3532012d627699e2c3027a4d1778547c6bcbe64c97bd69015be25fbb93b982cf
    Download IVPN Client for macOS (M1)
    SHA256: 2de8c7f384973982484c6656edd3b9fc01091d1c2c282ee979aceea3b6b88413

    Download IVPN Client for Linux (DEB)
    SHA256: 7b1037aa224b785c84b44531cc0d5454a328e21082f3011c6d4308de231a007a
    Download IVPN Client for Linux (RPM)
    SHA256: 831e7845361574ff5a7529fc47b54405002a209c66e6da7ea3d8bba2d902cc79

    Download IVPN Client UI for Linux (DEB)
    SHA256: 4949949d219bb746fc0d5b9d9eb3e7e6a0f26aa01d32d9cda687b5461d82119c
    Download IVPN Client UI for Linux (RPM)
    SHA256: e01180b5325ccb2c21eb714bae7b74203d1e3947c9b38c88d08a039fcf1fed64

    Source code(tar.gz)
    Source code(zip)
  • v3.8.7(May 4, 2022)

    [NEW] Enhanced App Authentication
    [NEW] Custom Firewall exceptions
    [FIX] (Windows) Firewall was blocking connections on port 53
    [FIX] (Windows) Service crash when using specific custom DNS configuration

    Download IVPN Client for Windows
    SHA256: d9b16b2b3eff87e32a09b74558d3570d1b1ca82b77e9483ceb7aac179a568661

    Download IVPN Client for macOS (Intel)
    SHA256: e1e9d166b55af4103a85198b4d195622a1a1820b8d39f4201b9ff012a6b3bab1
    Download IVPN Client for macOS (M1)
    SHA256: 7ea309b19f344d291395b362feaa190271d5ac4c37f4480978cb6b8e442323b2

    Download IVPN Client for Linux (DEB)
    SHA256: 0ada7f81f7525ce6352535754a12f74b32437e5725c95c4fedd696fa2620a051
    Download IVPN Client for Linux (RPM)
    SHA256: 9661b837e3873bb4ea8ba24d4f54057086186531f23cec4a7c0ff7f7e178bb84

    Download IVPN Client UI for Linux (DEB)
    SHA256: 27b9b5365569ae177878eea17a390facc522333839a5ae91b564829ce0e67fe3
    Download IVPN Client UI for Linux (RPM)
    SHA256: be63d92659d1f5268e7edb53b4635886705589a5440ba19b2b7a6c588a87f4b8

    Source code(tar.gz)
    Source code(zip)
  • v3.7.0(Apr 5, 2022)

    [NEW] (macOS/Linux) Configure custom DNS over HTTPS [NEW] (Windows) Configure custom DNS over HTTPS (Windows 8/10) [NEW] (Windows/Linux) Last used apps for Split Tunneling now show on the top of the list [NEW] Added new connection ports (UDP 80, UDP 443) [FIX] Vulnerability fixes

    Source code(tar.gz)
    Source code(zip)
  • v3.6.4(Mar 15, 2022)

  • v3.5.2(Mar 15, 2022)

  • v3.5.1(Jan 20, 2022)

  • v3.4.5(Nov 23, 2021)

  • v3.4.0(Nov 8, 2021)

    [NEW] Multi-Hop for WireGuard protocol [NEW] Option to reset app settings on logout [NEW] Option to keep Firewall state on logout [NEW] CLI option to show all servers and to connect to specific server [NEW] (Linux) Obfsproxy now works on Linux [IMPROVED] Speed up the response timeout to API server [IMPROVED] Force automatic WireGuard key regeneration if the rotation interval has passed [IMPROVED] (Windows) Updated WireGuard: v0.4.9 [IMPROVED] (Windows) Updated: OpenVPN: v2.5.3; OpenSSL: 1.1.1k [IMPROVED] (macOS) Updated: OpenVPN: v2.5.3; OpenSSL: 1.1.1k [IMPROVED] (macOS) Updated WireGuard binaries: wireguard-go: v0.0.20210424; wireguard-tools v1.0.20210914 [IMPROVED] (Linux) WireGuard-tools integrated into a package (for a kernel since 5.6, no dependencies required to use WireGuard) [FIX] Fastest server settings were ignored in some cases [FIX] Option to run multiple UI instances in some cases [FIX] Server selection issues [FIX] Other minor issues and improvements [FIX] (Windows) Compatibility with Windows Server [FIX] (Windows) IVPN Firewall rules overlap blocking rules from Windows Firewall [FIX] (Windows) Icons created in %temp% each time app is launched [FIX] (macOS) Unable to start WireGuard connection if more than 10 utunX devices configured [FIX] (Linux) "Allow LAN traffic" does not persist after a restart [FIX] (Linux) UI crash after some Linux distribution updates

    Source code(tar.gz)
    Source code(zip)
  • v3.3.40(Sep 14, 2021)

  • v3.3.30(Aug 31, 2021)

    [NEW] Preparation for 2FA in CLI [IMPROVED] (Linux) The installation path changed from '/usr/local/bin' to '/usr/bin' [FIXED] Server selection order incorrect when sorted by country [FIXED] (Linux) Removed unnecessary paths from package which may lead to conflict with other software

    Source code(tar.gz)
    Source code(zip)
  • v3.3.20(Jun 29, 2021)

    [NEW] IPv6 inside WireGuard tunnel [NEW] IPv6 connection info [NEW] New option in settings ‘Allow access to IVPN server when Firewall is enabled’ [NEW] (Windows) Contrast tray icon (black or white; depends on Windows color theme) [FIXED] VPN was active after reboot when connected to Trusted WIFI [FIXED] Sometimes application was failing to connect to IVPN daemon [FIXED] (Windows) The daemon service was not starting when the 'Windows Events Logs' service is not running [FIXED] (macOS) WireGuard compatibility with old macOS versions

    Source code(tar.gz)
    Source code(zip)
cross-platform library for sending desktop notifications

Golang-Toast cross-platform library for sending desktop notifications Installation go get

雷系泡泡 11 Nov 24, 2022
User Agents detector for tv, phone, tablet and desktop devices.

gouseragents Accurate and fresh list of desktop, phone, tablet and tv user agents. install go get github.com/emetriq/gouseragents usage import ( "f

emetriq GmbH 2 Apr 26, 2022
ClashWebLite is a cross-platform lightweighted wrapper for Clash Premium on Desktop environment.

ClashWebLite ClashWebLite is a cross-platform lightweighted wrapper for Clash Premium on Desktop environment. http://127.0.0.1:9090/ui: Features Suppo

null 46 Dec 29, 2022
Notion Official API Go Client.

go-notion Go SDK for Notion Official API. go get github.com/sorcererxw/go-notion Overview Getting Started Pagination Error Handling Reverse Proxy OAut

QianyuPan 14 Aug 4, 2021
Official Go implementation of the Fixcoin protocol

XFSGO Official Go implementation of the XFS protocol. Usage To learn more about the available xfsgo commands, use xfsgo help or type a command followe

XFS Network 0 May 18, 2022
Official Go Client for OpenSearch

OpenSearch Go Client Welcome! Project Resources Code of Conduct License Copyright Welcome! opensearch-go is a community-driven, open source fork of go

null 94 Dec 21, 2022
A simple non-official client for qvapay service with go, for our comunity

qvapay-go A simple non-official client for qvapay service with go, for our comunity Setup You can install this package by using the go get tool and in

Kenrique Ortega 8 Dec 26, 2021
🤖 Automatically scrape PortableApps.com (or official release page) and convert into Edgeless plugin package

Edgeless 自动插件机器人 2 简介 该项目是为了使用 Golang 重新实现 Edgeless 自动插件机器人 特性 (WIP) 完全兼容 Edgeless 自动插件机器人,包括 Tasks,以实现无缝迁移 更快的构建速度 更好的代码结构 更高的拓展性 工作进度 截止至 2021/11/28

Hydrogen 2 Sep 12, 2022
The official repository of the Gravity Bridge Blockchain

Gravity bridge is Cosmos <-> Ethereum bridge designed to run on the Cosmos SDK blockchains like the Cosmos Hub focused on maximum design simplicity an

Gravity Bridge Foundation 117 Dec 27, 2022
Official Go implementation of the Klaytn protocol

Klaytn Official golang implementation of the Klaytn protocol. Please visit KlaytnDocs for more details on Klaytn design, node operation guides and app

ProtoFire 0 Dec 5, 2021
Official Golang implementation of the PANO protocol

Panoptis Official Golang implementation of the PANO protocol Building the source Building pano requires both a Go (version 1.14 or later) and a C comp

PanoptesDev 1 Dec 14, 2021
Iaphub-go - Non-official Go client for Iaphub

Iaphub-go iaphub-go is an unofficial Go client for iaphub.com REST API. Installation go get github.com/n10ty/iaphub-go Usage package main import ( "

Andrey 1 Mar 15, 2022
Official codebase and releases for the DEXbot Client application

The sidecar to your cryptocurrency wallet Create an account on DEXbot.io » Read the Docs to Get Started » Introduction DEXbot is a decentralized appli

DEXbot 7 Apr 16, 2022
Cross-platform, multi-server chat app built using Fyne

Fibro Really early days proof of concept for a cross-platform multi-server chat. Feel free to play, but don't expect it to do much! Features Multiple

Andy Williams 23 Sep 10, 2022
Service Management App for Caddy v2

caddy-systemd Service Management App for Caddy v2. Please ask questions either here or via LinkedIn. I am happy to help you! @greenpau Please see othe

Paul Greenberg 19 Sep 1, 2022
Calculator app with gRPC

Go - build The Go example requires a plugin to the protocol buffer compiler, so it is not build with all the other examples. See: https://github.com/g

null 0 Nov 1, 2021
This app brings the Matterbridge binary to your server to connect Nextcloud Talk with other chat services

This app brings the Matterbridge binary to your server to connect Nextcloud Talk with other chat services

Nextcloud 27 Sep 12, 2022
Client-Server App Using RPC to Communicate

rpc-client-server Client-Server App Using RPC to Communicate How to run the application Start the server From the root execute the following command i

Andrei Ionescu 0 Nov 24, 2021
Chat app that allows you to group multiple channels into one view.

hashchat Backend service Getting Started Essential steps to get your backend service deployed A helloworld example has been shipped with the template

Commit App Playground 0 Dec 13, 2021