I have had iiNet ADSL for a very long time, and as a result of one of their acquisitions, the 3FL game servers now count as “freezone” for all iiNet customers. Whats really great about this, is that 3FL has official steam content servers; so steam downloads from 3FL are “freezone” too! This is great, if like me you are a die-hard valve/steam fan boi.
The problem is that Steam uses a “BitTorrentesque” download technique and despite any settings you make inside Steam, it will not guarantee that it will limit its downloading from that server. Windows users for a while now have had an app called SteamWatch which monitors Steam, and when it trys to download from another server, forcibly closes the connection on Steam. Sadly, mac users dont have anything so easy, yet. However, here is a shell script which adds a number of rules to the OSX firewall to stop steam from downloading from non-free servers:
/sbin/IPFW -f flush /sbin/IPFW -f add 3000 allow tcp from any to 126.96.36.199 27030 out /sbin/IPFW -f add 3001 allow tcp from any to 188.8.131.52 27030 out /sbin/IPFW -f add 3020 deny tcp from any to any 27030 out
Just save these lines into a text file (mine is called ‘rules.sh’) and then in the terminal (and from the directory you saved the file) execute:
sudo bash rules.sh
In this case, I have setup the rules for 2 servers, 184.108.40.206 and 220.127.116.11 which are the 2 servers which correspond to free content servers for iiNet. If you are not iiNet, and can find out the IPs of your free Steam servers, just remove those lines and add/edit accordingly.
Now, this is not a silver bullet. When these rules are on, it may restrict or otherwise affect online gaming and some Steam games may not download at all (because not every Steam content server has 100% of the steam catalogue on it!). However, when you reboot, its reset, or you can run this command at a terminal prompt:
sudo /sbin/IPFW -f flush
…and the rules will be reset. Happy free downloading!