website/src/app/kb/client-apps/linux-gui-client/readme.mdx
import SupportOptions from "@/components/SupportOptions"; import Alert from "@/components/DocsAlert";
The Linux GUI Client is designed for Linux desktop environments where a user is present to authenticate with your identity provider interactively.
<Alert color="info"> If you're looking for a headless Client suitable for server or container-based installs, see the [Linux headless Client](/kb/client-apps/linux-headless-client) user guide instead. </Alert>Add the Firezone APT repository:
sudo mkdir --parents /etc/apt/keyrings
wget -qO- https://artifacts.firezone.dev/apt/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/firezone.gpg
echo "deb [signed-by=/etc/apt/keyrings/firezone.gpg] https://artifacts.firezone.dev/apt/ stable main" | sudo tee /etc/apt/sources.list.d/firezone.list
Install the Client:
sudo apt update
sudo apt install firezone-client-gui
To finish the setup, reboot your machine. This is necessary to fully reflect
group membership changes. The GUI client cannot function until the current user
is in the firezone-client group.
These are required for both GNOME extensions and the WebKit and other dependencies of the Firezone Client.
sudo dnf config-manager --set-enabled crbsudo dnf install epel-releaseGNOME Shell in CentOS does not have a system tray by default. Use these steps to install it. For other desktops like xfce4 or KDE, the system tray may already work properly.
sudo dnf install gnome-shell-extension-appindicatorgnome-extensions enable [email protected]gnome-extensions-app.rpm from GitHub Releasessudo dnf install systemd-resolved (Installing it explicitly prevents it
from being auto-removed if Firezone is removed)sudo dnf install ./firezone-client-gui-*.rpmsudo usermod -aG firezone-client $USERsudo cp /etc/resolv.conf /etc/resolv.conf.before-firezone Back up your
resolv.conf file. If anything goes wrong with your DNS, you can copy this
back into place.sudo ln --force --symbolic /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
This puts systemd-resolved, and therefore Firezone, in control of the
system's DNS. systemd-resolved does not do this automatically, since it's
under /etc.Firezone from the app menu.Firezone from your desktop environment's
application menu or from an interactive shell.Sign in. This will open the Firezone sign-in
page in your default web browser.Always allow to allow your web browser to sign in
to Firezone, then click Open or Open linkFirezone connected notification, Firezone is running.The Welcome screen only appears during your first sign-in. After that, you can click on the Firezone icon in the system tray to open the tray menu and sign in.
When Firezone is signed in, web browsers and other programs will automatically use it to securely connect to Resources.
To copy-paste the address of a Resource:
Disconnect and Quit or Quit.When Firezone is not running, you can't access private Resources, and the computer will use its normal DNS and Internet behavior.
If you were signed in, then you will still be signed in the next time you start Firezone.
Sign out.When you're signed out, you can't access private Resources, and the computer will use its normal DNS and Internet behavior.
If you installed the Client via apt you can upgrade it like any other package:
sudo apt update
sudo apt upgrade firezone-client-gui
If you installed the package manually, follow these upgrade steps:
.deb or .rpm installer package from
GitHub Releases.Firezone Client if it's running.sudo apt-get install ./firezone-client-gui-linux_<VERSION>_<ARCH>.(deb|rpm)Firezone Client.Firezone writes log files to disk. These logs stay on your computer and are not
transmitted anywhere. If you find a bug, you can send us a .zip archive of
your logs to help us fix the bug.
To export or clear your logs:
Settings.Diagnostic Logs.Export Logs or Clear Log Directory.The Tunnel service (firezone-client-tunnel.service) also logs to stdout which
is captured by systemd and sent to journald. To view the logs of the Tunnel
service, use:
journalctl --pager-end --follow --unit firezone-client-tunnel.service
The GUI client logs to journald directly as well with the syslog identifier
firezone-client-gui. To view the logs via journalctl, use:
journalctl --pager-end --follow --identifier firezone-client-gui
firezone-client-gui debug set-autostart falseFirezone Client if it's running.sudo apt-get remove firezone-client-guisystemd-resolved is enabledsystemctl status systemd-resolved
stat /etc/resolv.conf
systemctl should show that systemd-resolved is enabled and
active (running).
stat should show that resolv.conf is a symlink to stub-resolv.conf:
File: /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
If systemd-resolved is not running, or the symlink is not set up, Firezone may
not be able to start, or may not be able to access DNS resources.
resolvectl dns
Firezone Split DNS:
Global:
Link 2 (enp0s6): 10.0.2.3 fec0::3
Link 3 (tun-firezone): 100.100.111.1 fd00:2021:1111:8000:100:100:111:0
Normal system DNS:
Global:
Link 2 (enp0s6): 10.0.2.3 fec0::3
cat /etc/resolv.conf
Normal resolv.conf if systemd-resolved is installed, whether or not Firezone
is running:
# This file is managed by man:systemd-resolved(8). Do not edit.
...
Firezone resolv.conf if you set FIREZONE_DNS_CONTROL=etc-resolv-conf:
# BEGIN Firezone DNS configuration
...
By default, the Firezone GUI Client for Linux controls DNS using
systemd-resolved, which will automatically revert DNS to the system defaults
when Firezone is disconnected.
If the network interface stays up and DNS does not revert, you can try restarting the tunnel service. Quit the Firezone GUI, then run:
sudo systemctl restart firezone-client-tunnel
The Firezone Client is split into 2 main processes: A Tunnel service which runs the tunnel, and a GUI which allows the user to control Firezone.
/var/log/dev.firezone.client/$HOME/.cache/dev.firezone.client/data/logs/, where
$HOME is, e.g. /home/username/