mirror of
https://github.com/ngoduykhanh/wireguard-ui.git
synced 2025-04-19 19:59:13 +03:00
Created restart-wg.sh file
Created wireguard restart script, which compares wg0.conf part between [Interface] and first peer with previous version for changes, and, if there is any - restarts whole wireguard, if the only changes are done to peers, it calls "wg syncconf", eliminating client disconnection after pressing apply config problem.
This commit is contained in:
parent
aae63d1af9
commit
09abbdfcf0
1 changed files with 27 additions and 0 deletions
27
restart-wg.sh
Normal file
27
restart-wg.sh
Normal file
|
@ -0,0 +1,27 @@
|
|||
#!/bin/bash
|
||||
|
||||
config="/etc/wireguard/wg0.conf"
|
||||
old_config="/etc/wireguard/wg0.conf.old"
|
||||
|
||||
if [ ! -f $old_config ]; then
|
||||
awk '/Interface/,/# ID:/' $config | head -n -1 | tail -n +2 > $old_config
|
||||
echo "No old config found, restarting wireguard (wg-quick)"
|
||||
wg-quick down wg0
|
||||
systemctl restart wg-quick@wg0.service
|
||||
exit 0
|
||||
fi
|
||||
|
||||
difference=$(diff <(awk '/Interface/,/# ID:/' $config | head -n -1 | tail -n +2) <(cat $old_config))
|
||||
|
||||
if [ -n "$difference" ]; then
|
||||
awk '/Interface/,/# ID:/' $config | head -n -1 | tail -n +2 > $old_config
|
||||
echo "Changes to interface detected, restarting wireguard (wg-quick)"
|
||||
wg-quick down wg0
|
||||
systemctl restart wg-quick@wg0.service
|
||||
exit 0
|
||||
else
|
||||
awk '/Interface/,/# ID:/' $config | head -n -1 | tail -n +2 > $old_config
|
||||
echo "No changes to interface detected, restarting wireguard (wg syncconf)"
|
||||
wg syncconf wg0 <(wg-quick strip wg0)
|
||||
exit 0
|
||||
fi
|
Loading…
Add table
Reference in a new issue