#!/bin/bash
#
# The script tunnels all traffic on a machine to a remote hosts. It setups a
# socks proxy then tunnels to machine via ssh. This can be use useful when you
# need to test apis only accept connections from a whitelisted ip.
#
# This script is mac specific. There is likely a way to generalize the
# configuration of the socks proxy, but this currently don't do that.
#
# Usage: tubesock example.com

clean_up(){
  networksetup -setsocksfirewallproxystate wi-fi off
  echo "Goodbye."
  exit 0
}
trap clean_up INT

echo "Configuring..."
networksetup -setsocksfirewallproxy wi-fi 127.0.0.1 1111
echo "Socks proxy enabled"

echo "Tunneling..."
ssh -ND 1111 "${1}"