# Configure Software Update to use a SOCKS5 proxy

I've got a machine that doesn't have a direct connection to the internet. I use a socks proxy to connect to the internet:

% ssh -ND 8080 gateway-machine


And I've got Firefox, etc configured to use this proxy, so I can browse the internet as normal.

How can I configure Software Update to use this proxy (or some other method) so I can get updates to this machine?

I know I can set the software update url to a non-default value, so that might help, but I'm not sure how.

Unlike Firefox, most OS X apps don't have their own proxy settings but instead respect the system-wide configuration in the Network preference pane. This is particularly true of the bundled apps like Software Update and Safari.

To do that, just open the Network pane in System Preferences, select the connection you want to configure on the left (e.g. Wi-Fi), then click Advanced... on the lower-right:

Now, click the Proxies tab. Check the "SOCKS Proxy" checkbox, and then enter the address, port, and authentication info for your proxy.

Finally, click OK to exit the Advanced modal, then click Apply.

These screenshots are from 10.8 (Mountain Lion), but it's almost the same on older versions of OS X. Which reminds me, what version of Mac OS X are you using? A Google search turned up a couple posts about Software Update not working with authenticated proxies in 10.4 and/or 10.6.

You can bypass that and use 'sshuttle' to redirect all TCP traffic through an SSH tunnel proxy:

https://github.com/apenwarr/sshuttle

When you use this, it will setup an SSH tunnel/SOCKS5 proxy to another host. It will also setup local firewall and routing rules so that ALL TCP traffic will route through the SOCKS proxy/tunnel transparently.