#!/bin/bash set -xeuo pipefail pidfile=${RUNTIME_DIRECTORY:-/tmp}/tunsocks.pid nsname="$1" device="tun${nsname}" ns="${nsname}ns" if [ "$2" = use_env ];then proxy="$SOCKS_PROXY" shift else proxy="socks5:///run/nnss-${nsname}/sock" fi setup() { ip tuntap add mode tun dev "$device" /usr/bin/tun2socks -device "$device" -proxy "$proxy" & 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