Is there a simple way to detect ISP port blocking?

This will take a lot of time but will get you the list of all blocked ports:

#!/bin/bash

COUNTER=1
while [  $COUNTER -lt 65535 ]; do
        echo $COUNTER
        curl portquiz.net:$COUNTER --connect-timeout 1
        let COUNTER=COUNTER+1
done

You can set your computer as the DMZ in the router configuration, which means that NAT essentially passes everything to you.


Firebind.com is able to tell you whether any of the 65535 UDP or TCP ports are being blocked between your client machine and the Internet. They have a Java Applet client that sends packets back and forth from your machine to their server over the port(s) of your choosing, and if the packets transfer successfully, you know the port isn't blocked by any intervening firewall (such as your own home router or your ISPs firewall.)

So in your case you could first run tests from behind your router and get a list of all blocked ports. Then you could connect your machine directly to the Internet (bypassing the firewall) and run the tests again. By comparing the results you'd be able to figure out the difference between what your home router blocks and what your ISP blocks.

It's important to note that Firebind is NOT a port scanner. It's a "PATH" scanner.

http://www.firebind.com