WireGuard туннелін systemd қызметі ретінде қалай іске қосу керек
wg-quick@ үлгісі аталған профильді көтеріп, маршруттарды, DNS пен ілмектерді орнатады. Юнитті тексеріңіз, бір менеджерді жауапты ұстаңыз және бөлшектеуді сынаңыз.
Сізде /etc/wireguard/wg0.conf мекенжайында WireGuard профилі бар және әр қайта жүктеу сайын wg-quick up-ді қолмен термей-ақ оның қосулы болуын қалайсыз. Пакеттегі systemd үлгісі дәл осыны жасайды: [email protected] wg0 атты профиль үшін wg-quick іске қосады. Ол сондай-ақ профиль жариялайтын мекенжайларды, маршруттарды, DNS пен кез келген ілмектерді орнатады, бұл ядроға кілт жүктеуден әлдеқайда көп. Үлгі бар деп болжамас бұрын оның жүйеде шынымен бар екенін тексеріңіз.
Бұл нұсқаулықтың қалғаны нақты жасайтын ретіңізбен жалғасады.
Юнитті және оның оқитын профилін табыңыз
Юнит файлдарын systemctl list-unit-files 'wg-quick*' арқылы тізімдеңіз. Оны пакеттейтін дистрибутивтерде [email protected] көресіз, инстанция атауы профильден алынады. Инстанция /etc/wireguard/<name>.conf болып шешіледі, сондықтан wg-quick@wg0 тек wg0.conf оқиды, басқа ештеңе емес. Егер тізім бос болса, құралдар пакеті орнатылмаған және қанша қоссаңыз да көмектеспейді.
Профильді 600 режимінде және root меншігінде ұстаңыз. Оның ішінде жеке кілт бар, ал рұқсат берсеңіз юнит нашар рұқсаттармен де қуана жұмыс істейді.
Оны көтеріп, журналды оқыңыз
Инстанцияны systemctl start wg-quick@wg0 арқылы бастаңыз, содан кейін systemctl status wg-quick@wg0 мен journalctl -u wg-quick@wg0 -b тексеріңіз. Басталып, бірден шығып кететін юнитте әдетте профиль қатесі болады, ал журнал жолды атайды. wg show арқылы интерфейстің бар екенін және соңғы қол алысудың жаңа екенін растаңыз. wg-quick нұсқаулығы скрипттің интерфейстен тыс не істейтінін тізімдейді.
Қол алысусыз конфигурацияланған интерфейс — жол немесе кілт мәселесі, қызмет мәселесі емес.
Бір менеджерді жауапты ұстаңыз
Егер NetworkManager немесе басқа клиент туннельге әлдеқашан ие болса, systemd юнитін іске қосу сол интерфейс, маршруттар мен DNS үшін екінші иесін жасайды. Симптомдар шатастырады: туннель көтеріледі, содан кейін маршруттар жоғалады немесе DNS бірнеше секундтан кейін қайтады. Бір менеджер таңдап, сол профиль үшін екіншісін өшіріңіз. Журнал әдетте басып алуды юнит сәттілік туралы хабарлағаннан кейін бірден маршрут немесе шешуші өзгерістері ретінде көрсетеді.
Екі менеджер меншікті бөліспейді. Олар бірін-бірі қайта жазады.
Тоқтатуды, қайта жүктеуді және жүктелуді сынаңыз
systemctl stop wg-quick@wg0 іске қосып, интерфейстің жоғалғанын және маршруттардың жойылғанын растаңыз. Содан кейін оны қайта бастап, маршруттардың қайта оралатынын тексеріңіз, себебі бөлшектеу қателері сәтсіз бастаулар ретінде емес, қалған маршруттар ретінде көрінеді. Соңында оны жүктелу кезінде systemctl enable --now wg-quick@wg0 арқылы қосып, бір рет қайта жүктеңіз.
Жүктелу кезінде соңғы нүктенің атауы юнит іске қосылмай тұрып шешілуі керек. Егер DNS әлі көтерілмесе, юнит сәтсіз болады және оны қолмен бастағанша сәтсіз күйінде қалады.
Иесін жазып алыңыз
Юнит қай профильді оқитынын, интерфейске қай менеджер ие екенін және файл қайдан келгенін жазыңыз. Кейін біреу сол туннельді жұмыс үстелі клиентіне импорттаса, сол жазба көші-қон мен бір мекенжай үшін таласатын екі орналастырудың айырмашылығы. Интерфейс атауын да жазыңыз, себебі ұқсас атаулы екі профиль шатасудың әдеттегі көзі.
Екі иесі бар туннель бірінші қайта жүктеуге дейін жұмыс істейді, содан кейін жұмбаққа айналады. Сондықтан жазба чат ағынында емес, репозиторийде болуы керек.