set
screen
в автономном режимеcase... esac
для создания сценария запуска/остановки. Может быть, что-то вроде этого:
#!/bin/bash
start(){
status # Print IP before connection
set -- /etc/openvpn/ovpn_tcp/*.nordvpn.com.tcp.ovpn
shift $(( RANDOM % $# ))
screen -S vpn -dm openvpn "$1" # connect
sleep 5 # wait for connection
status # Print IP after connection
}
stop(){
screen -S vpn -X quit
pkill -f ovpn
}
status(){
printf 'IP: %s\n' "$(curl -s ifconfig.co)"
}
case "$1" in
start)
if screen -ls | grep -w vpn; then
echo "Vpn already connected";
status
else
start
fi
;;
stop)
stop
;;
*)
status
;;
esac
, а затем вы можете добавить это как псевдоним:
alias vpn='bash /etc/openvpn/ovpn_tcp/go'
Использование:
# Start connection
vpn start
# Stop connection
vpn stop
# get status
vpn
В качестве альтернативы псевдониму вы можете поместить скрипт в свой ~/bin
, сделать его исполняемым и добавить этот каталог в свой $PATH
.