Having searched the internet a few times on the best way to open up SQL Server connectivity through windows firewall i've yet to find a best way of doing it. Does anyone have a guaranteed way of finding which ports SQL is running on so you can open them in windows firewall?
If you only have one instances of SQL Server running, and it has the TCP/IP transport enabled for non-local connections, then chances are it will be listening in the default TCP port: 1433.
If you have multiple instances, or any other complications above "a single, default, instance", then things may be more complicated. You will need to set the ports for each instance (by default they are semi-random which is not generally helpful for firewall configuration) and will need to open the SQL Browser Service too (which usually listens on TCP port 1434, though this too can be reconfigured).
There is a fairly detailed set of notes on SQL Server and firewalls at http://msdn.microsoft.com/en-us/library/cc646023.aspx
You will need to start browser service to resolve non-default instances. Additionally, opening UDP 1434 will allow resolution of the named instances by name instead of port, so you will not need to use the ports. If you are uncomfortable opening UDP 1434 long-term, or you have a DBA who is on-site and can connect locally, you may ask them to connect via SQL Server Mgmt Studio OR SQLCMD and specifiy the server connection as follows:
prefixing with tcp will force a tcp connection. Once this is done, you may connect to your named instance and query sys.dm_exec_connections to find the port the non-default instance is running on like so: