Skip to content

Instantly share code, notes, and snippets.

@nottux
Last active January 18, 2021 12:41
Show Gist options
  • Save nottux/77b75f0090aa73b521c9481d9db6b99a to your computer and use it in GitHub Desktop.
Save nottux/77b75f0090aa73b521c9481d9db6b99a to your computer and use it in GitHub Desktop.
namespaced vpn but easy
#!/bin/bash
pipe=/tmp/outpipe_vpn
case "$1" in
firefox|web|fox) app="firefox --private-window";;
haku|neko|nero|hakuneko|hakunero) app="/usr/lib/hakuneko-desktop/hakuneko";;
shell|sh) app="echo openning shell";;
*) app="firefox --private-window";;
esac
case "$2" in
vpn) user=vpn;;
utku3) user=utku3;;
"") user=$USER;;
*) echo wrong user;exit;;
esac
if [ -e "$pipe.exist" ]
then sudo ip netns exec protected sudo -u $user sh -c "DISPLAY=:0 $app"
case "$1" in
shell|sh) sudo ip netns exec protected sudo -u $user -i;;
esac
else sudo echo 'nyaa-des ~'
touch "$pipe.exist"
mkfifo $pipe
sudo /home/utku3/Programlar/namespaced-openvpn-master/namespaced-openvpn --config '/home/utku3/vpn/FreeVPN.me-OpenVPN-Bundle-July-2020/FreeVPN.me - Server1-NL/Server1-TCP443.ovpn' >$pipe & grep -m1 "Initialization Sequence Completed" $pipe && (xhost local: ; sudo ip netns exec protected sudo -u $user sh -c "DISPLAY=:0 $app")
case "$1" in
shell|sh) sudo ip netns exec protected sudo -u $user -i;;
esac
rm $pipe
rm "$pipe.exist"
sudo su -c "kill $(jobs -p 1)"
sleep 1
while jobs -p 1
do sleep 2
sudo su -c "kill $(jobs -p 1)"
done
fi
@nottux
Copy link
Author

nottux commented Jan 18, 2021

utku3@utku3:~/Programlar$ /home/utku3/Programlar/vpn2 sh
openning shell
utku3@utku3:~/Programlar$

:)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment