#!/bin/sh BIN=/usr/bin/wireguard-go INTERFACE=wg0 CONFIG=/root/wirego/$INTERFACE.conf IP=$1 DEFAULT_IP=10.50.0.20/24 ROUTE=$(cat wg0.conf | grep AllowedIPs | cut -d "," -f 2-) pkill wireguard-go if [ ! -f $BIN ]; then echo "ERROR: wireguard-go binary missing" exit 1 else echo "INFO: wireguard-go binary found" fi if [ ! -f $CONFIG ]; then echo "ERROR: No $CONFIG present" exit 1 else echo "INFO: config found" fi if [ -z "$IP" ]; then echo "ERROR: No ip given" echo "INFO: Ip example: 192.168.1.1/24" IP=$DEFAULT_IP echo "INFO: Setting Default ip: $IP" fi echo "INFO: launching daemon on interface $INTERFACE" $BIN $INTERFACE echo "INFO: adding ip: $IP to interface: $INTERFACE" ip address add dev $INTERFACE $IP echo "INFO: loading config file: $CONFIG" wg setconf $INTERFACE $CONFIG echo "INFO: bringing up $INTERFACE" ip link set up dev $INTERFACE for i in $(echo $ROUTE | tr "," "\n") do ip route add $i dev wg0 proto kernel done echo "\n WG SHOW\n" wg echo "\n ROUTES\n" ip route iptables -D INPUT -i $INTERFACE -j ACCEPT iptables -A INPUT -i $INTERFACE -j ACCEPT