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.
Preparation
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
Compilation
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.
The flag -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
Installation
If you want to use fastd with Systemd, you can create a unit in the file /lib/systemd/system/fastd@.service
:
[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:
systemctl daemon-reload