#!/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