wg peer setup also use env sh

This commit is contained in:
2025-05-19 09:44:02 +00:00
parent 99264fdd55
commit f18e1c3b86

View File

@@ -1,17 +1,18 @@
#!/bin/bash #!/bin/bash
WG_NUM=$1 . ./env.sh
WG_CONF="/etc/wireguard" WG_CONF="/etc/wireguard"
PRIV_KEY_FILE="wg${WG_NUM}_privatekey" PRIV_KEY_FILE="wg${WG_NUM}_privatekey"
PUB_KEY_FILE="wg${WG_NUM}_publickey" PUB_KEY_FILE="wg${WG_NUM}_publickey"
CONF_FILE="wg${WG_NUM}.conf" CONF_FILE="wg${WG_NUM}.conf"
if [ -z "$1" ]; then if [ -z "$WG_NUM" ]; then
echo "Wireguard interface number not provided." echo "Wireguard interface number not provided."
exit 1 exit 1
fi fi
if ! [[ "$1" =~ ^-?[0-9]+([.][0-9]+)?$ ]]; then if ! [[ "$WG_NUM" =~ ^-?[0-9]+([.][0-9]+)?$ ]]; then
echo "Wireguard interface number has to be a number." echo "Wireguard interface number has to be a number."
exit 2 exit 2
fi fi
@@ -24,16 +25,26 @@ sudo mkdir -p $WG_CONF
sudo mv ./$PRIV_KEY_FILE $WG_CONF sudo mv ./$PRIV_KEY_FILE $WG_CONF
sudo mv ./$PUB_KEY_FILE $WG_CONF sudo mv ./$PUB_KEY_FILE $WG_CONF
read -p "Enter IP (as peer) (e.g. 192.168.180.2/24): " ADDRESS CONF_INTERFACE="[Interface]
read -p "Enter DNS server (e.g. 8.8.8.8): " DNS
CONF_CONTENT="[Interface]
PrivateKey = $PRIVATE_KEY PrivateKey = $PRIVATE_KEY
Address = $ADDRESS Address = $PEER_IP
DNS = $DNS DNS = $DNS_SERVER
" "
echo "$CONF_INTERFACE" > "$CONF_FILE"
CONF_PEER="[Peer]
PublicKey = $PEER_PUBLIC_KEY
AllowedIPs = $ALLOWED_IPS
Endpoint = $PEER_ENDPOINT
PersistentKeepalive = 25
"
echo "$CONF_PEER" >> "$CONF_FILE"
echo "$CONF_CONTENT" > "$CONF_FILE"
sudo mv "$CONF_FILE" "$WG_CONF" sudo mv "$CONF_FILE" "$WG_CONF"
echo "Config saved to: $WG_CONF/$CONF_FILE" echo "Config saved to: $WG_CONF/$CONF_FILE"
echo "Add the following to the server config:"
echo "[Peer]
PublicKey = $(cat $WG_CONF/$PUB_KEY_FILE)
AllowedIPs = $PEER_IP
"