enablesocksproxy & disablesocksproxy
For how to set up ssh & sshd to get a local SOCKS proxy on Mac OS X see:
- Local SOCKS Proxy for Safari
- AppleScript to enable SOCKS proxy on Mac OS X
- Local SOCKS Proxy for Safari
- AppleScript to enable SOCKS proxy on Mac OS X
# systemsetup & networksetup (Mac OS X 10.4), # http://codesnippets.joyent.com/posts/show/1691 ls -l /usr/sbin/{networksetup,systemsetup} /usr/bin/sudo /bin/ln -is /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/systemsetup-panther /usr/sbin/systemsetup /usr/bin/sudo /bin/ln -is /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/networksetup-panther /usr/sbin/networksetup # Get network service information on Mac OS X, # http://codesnippets.joyent.com/posts/show/1819 function network_service_name() { SERVICE_GUID="$(printf "open\nget State:/Network/Global/IPv4\nd.show" | \ /usr/sbin/scutil | /usr/bin/awk '/PrimaryService/{print $3}')" SERVICE_NAME="$(printf "open\nget Setup:/Network/Service/${SERVICE_GUID}\nd.show" | \ /usr/sbin/scutil | /usr/bin/awk -F': ' '/UserDefinedName/{print $2}')" echo "${SERVICE_NAME}" return 0 } function enablesocksproxy() { /usr/sbin/systemsetup -setremotelogin on 2>/dev/null # off is for authentication /usr/bin/sudo /usr/sbin/networksetup -setsocksfirewallproxy "$(network_service_name)" 127.0.0.1 8080 off if [[ -z "$(/usr/bin/sudo /usr/sbin/networksetup -getinfo "$(network_service_name)" | /usr/bin/egrep -i 'IP address:')" ]]; then echo '... not connected to the internet ...' return 1 fi /usr/bin/ssh -q -D 8080 -f -C -N -x NAME@IPADDRESS # customize /usr/bin/sudo -k return 0 } function disablesocksproxy() { /usr/bin/sudo /usr/sbin/systemsetup -f -setremotelogin off 2>/dev/null # note position of -f /usr/bin/sudo /usr/sbin/networksetup -setsocksfirewallproxystate "$(network_service_name)" off /usr/bin/sudo -k return 0 } systemsetup -getremotelogin sudo networksetup -getinfo "$(network_service_name)" sudo networksetup -getsocksfirewallproxy "$(network_service_name)" disablesocksproxy enablesocksproxy