Cara memulai tunnel WireGuard sebagai layanan systemd
Templat wg-quick@ menaikkan profil bernama dan memasang rute, DNS, serta hook. Verifikasi unit, pertahankan satu pengelola yang bertanggung jawab, dan uji pembongkaran.
Anda punya profil WireGuard di /etc/wireguard/wg0.conf dan ingin profil itu aktif tanpa mengetik wg-quick up secara manual setelah setiap reboot. Templat systemd dari paket melakukan tepat itu: [email protected] menjalankan wg-quick untuk profil bernama wg0. Templat itu juga memasang alamat, rute, DNS, dan hook apa pun yang dideklarasikan profil, yang lebih dari sekadar memuat kunci ke kernel. Periksa bahwa templat itu benar-benar ada di sistem Anda sebelum menganggapnya ada.
Sisa panduan ini mengikuti urutan yang benar-benar akan Anda lakukan.
Temukan unit dan profil yang dibacanya
Daftar file unit dengan systemctl list-unit-files 'wg-quick*'. Pada distribusi yang memaketkannya, Anda akan melihat [email protected], dengan nama instans diambil dari profil. Instans itu diselesaikan ke /etc/wireguard/<name>.conf, sehingga wg-quick@wg0 hanya membaca wg0.conf dan tidak yang lain. Jika daftarnya kosong, paket alat tidak terpasang dan berapa pun pengaktifan tidak akan membantu.
Pertahankan profil pada mode 600 dan milik root. Profil berisi kunci privat, dan unit akan dengan senang hati berjalan dengan izin yang lebih buruk jika Anda membiarkannya.
Nyalakan dan baca jurnal
Mulai instans dengan systemctl start wg-quick@wg0, lalu periksa systemctl status wg-quick@wg0 dan journalctl -u wg-quick@wg0 -b. Unit yang menyala lalu langsung keluar biasanya memiliki kesalahan profil, dan jurnal menyebutkan barisnya. Pastikan dengan wg show bahwa antarmuka ada dan handshake terakhir masih baru. Manual wg-quick mencantumkan apa yang dilakukan skrip di luar antarmuka itu sendiri.
Antarmuka yang dikonfigurasi tanpa handshake adalah masalah jalur atau kunci, bukan masalah layanan.
Pertahankan satu pengelola
Jika NetworkManager atau klien lain sudah memiliki tunnel, memulai unit systemd membuat pemilik kedua untuk antarmuka, rute, dan DNS yang sama. Gejalanya membingungkan: tunnel naik, lalu rute hilang, atau DNS kembali seperti semula setelah beberapa detik. Pilih satu pengelola dan nonaktifkan yang lain untuk profil tersebut. Jurnal biasanya menunjukkan pengambilalihan sebagai perubahan rute atau resolver tepat setelah unit melaporkan keberhasilan.
Dua pengelola tidak berbagi kepemilikan. Mereka saling menimpa.
Uji berhenti, mulai ulang, dan boot
Jalankan systemctl stop wg-quick@wg0 dan pastikan antarmuka sudah hilang dan rutenya dihapus. Lalu mulai lagi dan periksa bahwa rute kembali, karena bug pembongkaran muncul sebagai rute sisa, bukan sebagai kegagalan start. Terakhir aktifkan saat boot dengan systemctl enable --now wg-quick@wg0 dan reboot sekali.
Saat boot, nama endpoint harus diselesaikan sebelum unit berjalan. Jika DNS belum aktif, unit gagal dan tetap gagal sampai Anda memulainya secara manual.
Catat pemiliknya
Tuliskan profil mana yang dibaca unit, pengelola mana yang memiliki antarmuka, dan dari mana file itu berasal. Ketika nanti seseorang mengimpor tunnel yang sama ke klien desktop, catatan itu adalah pembeda antara migrasi dan dua penerapan yang berebut satu alamat. Catat juga nama antarmuka, karena dua profil dengan nama mirip adalah sumber kebingungan yang biasa.
Tunnel dengan dua pemilik berfungsi sampai reboot pertama, lalu menjadi misteri. Itu sebabnya catatan itu masuk ke repositori, bukan ke utas obrolan.