Compile and install fastd
The fastd compilation process is documented at [Building fastd](https://fastd.readthedocs.io/en/stable/devel/building.html. This is only a brief guide. For reference, the official fastd documentation should be used.
The first thing to do is to install the appropriate dependencies. On Debian you can do this with the following command:
sudo apt install build-essential meson bison libuecc-dev libcap-dev libjson-c-dev libssl-dev libmnl-dev libsodium-dev clang-format
After that you can clone the Git repository. GitHub requires an IPv4 clearnet connection.
git clone https://github.com/NeoRaider/fastd.git
After that you can prepare the compilation:
meson setup fastd fastd-build -Dbuildtype=release -Db_lto=true -Dcapabilities=enabled -Doffload_l2tp=enabled
-Db_lto=true activates link-time optimizations.
-Dcapabilities=enabled enables the option that fastd can later negotiate capabilities with its peer accordingly.
-Doffload_l2tp=enabled enables the option to later offload L2TP connections in fastd to the kernel and thus increase speed.
-Dmethod_cipher-test=enabled can be used to use the
cipher-test method in fastd.
After that you can change to the build directory and compile fastd:
cd fastd-build ninja
To install fastd you can use the following command:
sudo ninja install
If you want to use fastd with Systemd, you can create a unit in the file
[Unit] Description=Fast and Secure Tunnelling Daemon (connection %I) After=network.target [Service] Type=notify ExecStart=/usr/local/bin/fastd --syslog-level info --syslog-ident fastd@%I -c /etc/fastd/%I/fastd.conf ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
After that you can load the new unit: