#!/bin/sh /etc/rc.common # This is free software, licensed under the GNU General Public License v3. START=99 USE_PROCD=1 start_service() { config_load wireguard config_load network config_load firewall uci set firewall.wg_allow.dest_port="$(uci get wireguard.wg0.listen_port)" sed -i -r "s|^(PrivateKey =).*|\1 "$(uci get wireguard.wg0.private_key)"|g" /etc/wireguard/wg0.conf sed -i -r "s|^(ListenPort =).*|\1 "$(uci get wireguard.wg0.listen_port)"|g" /etc/wireguard/wg0.conf # server sed -i -r "s|^(PublicKey =).*|\1 "$(uci get wireguard.@wg0[0].public_key)"|g" /etc/wireguard/wg0.conf sed -i -r "s|^(Endpoint =).*|\1 "$(uci get wireguard.@wg0[0].endpoint_host):$(uci get wireguard.@wg0[0].endpoint_port)"|g" /etc/wireguard/wg0.conf sed -i -r "s|^(AllowedIPs =).*|\1 "$(uci get wireguard.@wg0[0].allowed_ips)"|g" /etc/wireguard/wg0.conf sed -i -r "s|^(PersistentKeepalive =).*|\1 "$(uci get wireguard.@wg0[0].persistent_keepalive)"|g" /etc/wireguard/wg0.conf export ip=$(uci get network.lan.ipaddr) export ip=${ip#*.*} export ipCD=${ip#*.*} ip l d wg0 ip l a wg0 type wireguard ip a a 192.168.${ipCD}/16 dev wg0 wg syncconf wg0 /etc/wireguard/wg0.conf ip l set up wg0 /etc/init.d/network reload }