Skip to content

Instantly share code, notes, and snippets.

@slowkow
Forked from sheerun/proxy
Last active February 5, 2021 14:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save slowkow/00cf7b1f1f1853aff3ba7750c5ace352 to your computer and use it in GitHub Desktop.
Save slowkow/00cf7b1f1f1853aff3ba7750c5ace352 to your computer and use it in GitHub Desktop.
Automatic SOCKS proxy setup through SSH connection on Mac OS X
#!/usr/bin/env bash
# Script for automatic setup of SOCKS proxy through SSH connection.
# It automatically teardowns SOCKS configuration before stopping.
# It's supposed to work on Mac OS X 10.6+
#
# Author: Adam Stankiewicz (@sheerun)
#
[[ -n "$1" ]] || { echo "Usage: proxy user@example.com"; exit 1; }
# get service GUID and NAME (like Wi-Fi) to set SOCKS proxy
SERVICE_GUID=`printf "open\nget State:/Network/Global/IPv4\nd.show" | \
scutil | grep "PrimaryService" | awk '{print $3}'`
SERVICE_NAME=`printf "open\nget Setup:/Network/Service/$SERVICE_GUID\nd.show" |\
scutil | grep "UserDefinedName" | awk -F': ' '{print $2}'`
# command to disble socks proxy after at the end
finally() { sudo networksetup -setsocksfirewallproxystate "$SERVICE_NAME" off; }
# enable socks proxy in system configuration
sudo networksetup -setsocksfirewallproxy "$SERVICE_NAME" 127.0.0.1 1080 &&
ssh $1 -N -D 1080
trap finally INT
finally
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment