mirror of
https://github.com/pivpn/pivpn.git
synced 2024-12-23 21:30:15 +00:00
62 lines
1.2 KiB
Bash
62 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
interface=$(ip -o link |
|
|
awk '{print $2}' |
|
|
cut -d ':' -f 1 |
|
|
cut -d '@' -f 1 |
|
|
grep -v -w 'lo' |
|
|
head -1)
|
|
ipaddress=$(ip addr show "${interface}" |
|
|
grep -o -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}/[0-9]{2}")
|
|
gateway=$(ip route show | awk '/default/ {print $3}')
|
|
hostname="pivpn.test"
|
|
|
|
err() {
|
|
echo "[$(date +'%Y-%m-%dT%H:%M:%S%z')]: $*" >&2
|
|
}
|
|
|
|
common() {
|
|
sed -i "s/INTERFACE/${interface}/g" "${vpnconfig}"
|
|
sed -i "s|IPADDRESS|${ipaddress}|g" "${vpnconfig}"
|
|
sed -i "s/GATEWAY/${gateway}/g" "${vpnconfig}"
|
|
}
|
|
|
|
openvpn() {
|
|
vpnconfig="ciscripts/ci_openvpn.conf"
|
|
twofour=1
|
|
common
|
|
sed -i "s/2POINT4/${twofour}/g" "${vpnconfig}"
|
|
cat "${vpnconfig}"
|
|
exit 0
|
|
}
|
|
|
|
wireguard() {
|
|
vpnconfig="ciscripts/ci_wireguard.conf"
|
|
common
|
|
cat "${vpnconfig}"
|
|
exit 0
|
|
}
|
|
|
|
if [[ "$#" -lt 1 ]]; then
|
|
err "specifiy a VPN protocol to prepare"
|
|
exit 1
|
|
else
|
|
chmod +x auto_install/install.sh
|
|
sudo hostnamectl set-hostname "${hostname}"
|
|
cat /etc/os-release
|
|
|
|
while true; do
|
|
case "${1}" in
|
|
-o | --openvpn)
|
|
openvpn
|
|
;;
|
|
-w | --wireguard)
|
|
wireguard
|
|
;;
|
|
*)
|
|
err "unknown vpn protocol"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
fi
|