initial commit
This commit is contained in:
39
tunsocks.sh
Executable file
39
tunsocks.sh
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -xeuo pipefail
|
||||
|
||||
pidfile=${RUNTIME_DIRECTORY:-/tmp}/tunsocks.pid
|
||||
|
||||
nsname="$1"
|
||||
device="tun${nsname}"
|
||||
ns="${nsname}ns"
|
||||
socketpath="/run/nnss-${nsname}/sock"
|
||||
|
||||
setup()
|
||||
{
|
||||
ip tuntap add mode tun dev "$device"
|
||||
|
||||
/usr/bin/tun2socks -device "$device" -proxy "socks5://$socketpath" &
|
||||
echo "$!" > "$pidfile"
|
||||
sleep 5
|
||||
|
||||
ip netns add "$ns"
|
||||
ip link set "$device" netns "$ns"
|
||||
|
||||
ip -n "$ns" addr add 198.19.1.1/30 dev "$device"
|
||||
ip -n "$ns" link set dev "$device" up
|
||||
ip -n "$ns" route add default via 198.19.1.1 dev "$device" metric 100
|
||||
ip -n "$ns" link set lo up
|
||||
systemd-notify --ready
|
||||
wait
|
||||
}
|
||||
|
||||
cleanup()
|
||||
{
|
||||
ip tuntap del mode tun dev "$device" || true
|
||||
kill $(cat "$pidfile")
|
||||
ip -n "$ns" tuntap del mode tun dev "$device"
|
||||
ip netns del "$ns"
|
||||
}
|
||||
|
||||
$2
|
Reference in New Issue
Block a user