12345678910111213141516171819202122232425262728293031323334 |
- #!/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
- }
|