Hi guys,
There's been a lot of discussion over the years about a network testing tool (for example,
here and
here). I had an idea today about a really simple way of testing your network. Instead of trying to mimic all the DirectPlay craziness, I decided that the main problem most people have is just getting their ports forwarded correctly in their firewall or router, so the other players in the session can connect back to them. So I made a little program that just checks your port forwarding.
Here's how it works...
It has a list of ports that it tests by default: UDP 23456, 6073, and 2300-2400. These cover FS2002, FS2004, and FSHostClient (for FSX). There are a couple more ports that need to be forwarded if you're hosting a session (TCP 47624 for FS2002, and TCP 80 for the Master Server and FSHostSpy), but the FS2002 port is really just for outgoing data so it's usually not a problem with routers, and FSHost itself will tell you if you don't have TCP 80 forwarded correctly.
For each port, it connects to a little CGI program on my server and asks it to send back a UDP test message to that port. It then listens on that port for the message, and if it gets it, it marks that port as OK. If it doesn't, it times out after 3 seconds and marks it as an error.
You can also add other ports you want to test. For example, if you're running FSHost with the FS2004 session on port 23457 (instead of the default 23456), you can tell the program to test 23457 as well. It'll still test 23456 also, but you can ignore the error message it produces in that case.
So... here's the program:
http://www.chocolatesoftware.com/fshost/FSPortTest_1.6.exe (Updated to version 1.6 on May 17, 2012)First, if you have FS2002 or FS2004 running and you're connected to a server, disconnect from it (but you can leave the program running). If you have FSHost running, stop the game servers (under the Server menu). Then save the program above somewhere on your machine, and double-click it to run it. It'll test all the normal ports and tell you if there are any errors. If it reports an error for a port, then it means that the outside world is not able to send data to you on that port, and you need to check your firewall and/or router again.
If you want to add additional ports for it to test, open a Command Prompt window (Start / Programs / Accessories / Command Prompt), change to the directory where you saved the program, and then run it with the additional ports added to the command line, separated by spaces. For example, to test 23455 and 23457 in addition to the normal ports, you'd run this:
FSPortTest.exe 23455 23457
And here's the full list of ports again, just for reference:
FS2002:TCP 47624
UDP 2300 to 2400
FS2004 and FSX:UDP 23456 (or your "2004 host port" on Server / Options / Session tab)
UDP 6073
UDP 2302 to 2400 (not necessary if also forwarding 2300 to 2400 for FS2002)
Remote (web) Access, and for FSHostSpy to be able to find your session:TCP 80 (or your Remote Access port on Server / Options / Remote Access tab)
If you need help with forwarding ports in your particular router, you might take a look at
www.portforward.com. Select your router from the list, then click the link in the upper right corner to "skip this advertisement" (you don't need to buy anything), and then select one of the "Flight Simulator" versions. The instructions there only tell you to forward one or two ports, but be sure to follow the same steps to forward all of the ports listed above, depending on which version of Flight Simulator you're using.
Let me know if you try out the program above!
Russell