summaryrefslogtreecommitdiff
path: root/src/wg.sh
blob: 8ed0098ee79bb008d8e62ec15c723142794f7fe9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash
LIBROOT="$(cd "$(dirname "${BASH_SOURCE[0]:-${(%):-%x}}")" && pwd)"
function wg::install() {
    case $OSRELEASE in
    ubuntu)
        apt update -y
        apt install -y wireguard
        ;;
    arch)
        pacman -Sy --noconfirm wireguard-tools
        pacman -Sy --noconfirm iptables
        ;;
    esac
}

function wg::start() {
    dev=$1
    privatekey=$2
    localip=$3
    localip6=$4
    port=$5
    ip link del dev $dev type wireguard
    ip link add dev $dev type wireguard
    ip address add dev $dev $localip
    ip -6 addr add $localip6 dev $dev
    wg set wg0 listen-port $port private-key $privatekey
    ip link set up dev $dev
}

function wg::gen_peer(){
    numpath=$1
    peer=$2
}

function wg::genkey() {
    wg genkey | tee privatekey | wg pubkey > publickey
}

function wg::client_stop() {
        ip link set down dev $1
        ip link del dev $1
}

echo "lib wg loaded."