Why Can’t I Connect? is an open source tool which can help to identify and solve TCP/IP connection errors.
Typically you'll use the program to try and connect to one of many common server types (Microsoft SQL Server, MySQL Server, FTP, SFTP, IMAP, POP3, SMTP, IRC, LDAP and Usenet are supported, along with generic servers and clients). Why Can’t I Connect? then tries to make the connection for you, reporting on what happens at every stage, and offering possible explanations for whatever errors crop up.
If you can't receive email from a POP3 server, say, you would choose the POP3 option, enter your server name or IP address, and optionally select a protocol (STARTLS, SSL/ TLS) or enter a port. (You don't have to enter a user name or password at any point, and so there's no need to worry about security: Why Can't I Connect? tries to reach the server only, it doesn't handle authentication.)
Once you’re set up, click OK and Why Can't I Connect? attempts to make the connection, displaying its various steps in the program's trace window. This includes identifying the current host name, checking for a bindable IP address, binding it to a socket handle, setting the receive and send timeouts, locating an IP address for the server and trying to make the connection.
If any of this fails then an error message appears with possible explanations: "your network connection is down", "your DNS server is down", "the port is being blocked by a firewall", "the server is slow", and so on.
This final analysis won't usually give you a definitive answer. When we tried running a POP3 connection to a web server, for instance, we got a “permission denied” error, with suggestions including "your network connection is down", "the port is not listening/ active", "the port is being blocked by a firewall", "the maximum connections for the server has been exceeded". The second was correct -- there was nothing listening at port 110 -- but the program has no way to know that for sure, and you'll need to do more work to turn its report into a solution.
Why Can’t I Connect? can help point you in the right direction, though, and it has some welcome bonus features thrown in. Bridging (tracing the conversation between an existing client and server) is our favourite, but there are also tools to report on connecting/ listening/ reserved ports, and a scripting option can automate testing to track down intermittent errors. Go grab a copy immediately for your troubleshooting toolkit.