I play a game called Halo: Combat Evolved, for PC. Its quite old, and has been out for some time. My version of the game is not the popular Halo Trial, released by Microsoft but the full game itself.
The Official Game Website: http://www.microsoft.com/games/halo/ can be found here.
Here's the problem: Whenever I try to host a game (that is, allow other computers to connect to mine [remote connection]), no one can find the game that I am hosting. Some of my friends have had this problem as well. In my local network, whether I use the LAN based game hosting or Internet game hosting, it works fine. That means that all computers connected within my house are able to see each other over the internet.
More Facts: Normally games are hosted using computer's IP Addresses (and you can directly connect to a hosted game by typing in the host's IP address). When I host a game, my IP address is local (e.g. 192.168.1.12). When someone who can actually host the game hosts their IP address is global (eg. 74.76.88.XXX). Also, the host's port number is commonly typed in after the IP address, (e.g. Me, trying to host 192.168.1.12:2302 ... them 126.96.36.199:2302).
What I have:
- Microsoft Windows Vista Ultimate (32-bit), latest service pack.
- 4 GB RAM, Asus Motherboard, Nvidia 9800GTX, Intel Core 2 Quad.
- Ethernet Card is Onboard (attached to motherboard).
- Broadband Internet. ISP: Comcast
- Router: Linksys WRTU54G-TM
- Windows Firewall, DISABLED.
- Comodo Firewall, DISABLED.
- Avast AntiVir, DISABLED.
- A static IP Address.
What I have tried:
This article http://support.microsoft.com/kb/829473 tells me that I need to have ports 80, 2302, and 2303 Open for hosting. These ports are listed as CLOSED but not STEALTH when tested using GRC's Shields Up.
I have tried to forward the ports, thought honestly I'm not sure if I did it correctly. Yes, I used portforward.com's extremely useful guides, and yes I chose the right router. Is there any way I can test for sure to see if these ports are forwarded? Yes, I forwarded all three ports both TCP and UDP.
What the hell is the difference between port forwarding and port triggering? I tried opening the ports using both... features.... with no success.
I also tried disabling the SPI Firewall protection on my router. Didn't work.
I also am not sure if the COMODO, Avast, or Windows Firewall are still somehow in effect, even if I have disabled them and killed the associated processes.
What else can I do?
If any other information is needed, please let me know.
Since you are not running any firewall, I would attribute the problem to the router. (though you may want to check and make sure your actually NOT running the windows firewall, its kinda tricky and stays on a lot of the time. If you are, its very easy to allow the ports you listed)
In order to properly forward ports to a computer, you must make sure that said computer is NOT a dynamic IP address, and is in fact set to a static IP address. This can be done several ways, but the easiest way is for me to make the assumption that you don't plan on moving this computer around to other networks any time soon and that setting a static IP on your local machine is ok.
In order to do this you must first acquire a few pieces of information....
(and btw, I'm not logged into my windows partition right now, doing a lot of heavy transfer loads on linux right now, so if I'm a little bit off on the names please excuse me. If I have time later I will also try and post screen shots if you have trouble understanding this.)
I. Obtain current IP information
II. Configure static IP
III. Configure port forwarding
IV. Open the firewall
==== I. Obtain current IP information =====
Open the Run dialogue box (Start-->Run), and type CMD in the resulting form.
A command line console will open. In this console, type the following without quotes: "ipconfig /all".
The resulting output will contain 3 valuable pieces of information:
1) Prefered/Alternate DNS Server
2) Default Gateway address (also known as your router's address)
3) Subnet Mask (which will almost always be 255.255.255.0
Now, either leave this window open for reference, or write this information down.
======== II. Configure static IP ========
Now we must use this information to set the static address. Go to your network connections menu, there are several ways, the easiest way is if there is a link in the start menu or by right clicking the icon of two computers in the taskbar if it is there. Otherwise choose it from control panel (Start-->Control Panel-->Classic Display-->Network Connections).
Once in this menu, it should be apparent which connection you are using (Local Internet Connection), right click that connection and hit properties in the resulting context menu. A window will pop open, on the first tab that is opened, select the TCP/IP Protocol from the list in the small window at the top. Then select properties or right click and select properties. (kinda fuzzy about this part, again I'm not running windows right now so you might need to just look for an option like this).
Now, we are in the window that we need to be in. This window is currently set to receive a dynamic IP address. Lets change that radio button to read a static IP address, and by doing this it should make us manually enter DNS servers below. For your IP address, I recommend NOT using anything in the 192.168.1.10x or 192.168.1.11x bracket. That range should be left for dynamic addresses to prevent causing a connection conflict. Try setting your address to 192.168.1.200 or something along that. Then just fill in the rest of this page with the info we gathered on section 1.
After this restart your computer.
====== III. Configure port forwarding=======
To configure port forwarding using a router, the process is pretty much always the same, open the router located at either http://192.168.1.1 or http://192.168.0.1 via a web browser. Since there are so many different makes and models I cant provide exact details, but http://portforward.com has excellent guides for all (or most) routers.
The process should basically entail that you go to an advanced section, and enable port forwarding. It should allow you to add each port individually, and they must be allowed through TCP and UDP. So take the ports 80, 2302, and 2303 and forward them to your local machine located at 192.168.1.200 or whatever you changed the address to. Make sure to hit save, and if your router doesn't restart automatically you may want to unplug it for 15-30 seconds and plug it back in (only the power cord is necessary).
========== IV. Open the firewall =========
This will discuss how to allow the Windows Firewall to allow your program and ports to be accessed. Process may be similar or vastly different for any other firewall you have installed, please read your user documentation for any firewall or make a quick trip to Google and punch in your search.
To open the firewall, the easiest way would be to go back into the control panel and open network connections again (Start-->Control Panel-->Classic View-->Network Connections) once in here, right click the Local Internet Connection and configure Windows Firewall should be an option, if not select Properties (from which you should be able to select the last tab of the window and access firewall rules).
Once in the firewall, you need to access the Exceptions tab and start by adding the programs: "C:\Program Files\Microsoft Games\Halo\halo.exe"
"C:\Program Files\Microsoft Games\Halo\haloupdate.exe"
without quotes, (these are default install paths).
Then you should have an option for port ranges in the exceptions menu. Simply add the ports 80, 2302, and 2303 allowing TCP/UDP inbound and outbound.
This concludes this tutorial, if you have trouble connecting to the internet after assigning a static IP address, you can always switch back to a dynamic one, but first make sure your router is configured to allow static ip addresses (you may have to disable the DHCP server, but that is usually not required)
|More Facts: Normally games are hosted using computer's IP Addresses (and you can directly connect to a hosted game by typing in the host's IP address). When I host a game, my IP address is local (e.g. 192.168.1.12). When someone who can actually host the game hosts their IP address is global (eg. 74.76.88.XXX). Also, the host's port number is commonly typed in after the IP address, (e.g. Me, trying to host 192.168.1.12:2302 ... them 188.8.131.52:2302). |
What's My IP Address? is a great website to check your IP Address (the one seen outside your home network).
|Is there any way I can test for sure to see if these ports are forwarded? Yes, I forwarded all three ports both TCP and UDP. |
To check you can use the Port Scanners tool also from whatsmyip.org. You could try "Game Port Test" but I'm not sure if it scans for Halo. Or you could enter the port number you want to test below at "Custom Port Test".
Wait a while and it will say "Open", "Closed", or "Timed-out". The first two is of course, self explanatory. Timed-out means that the port can be seen from the Internet, which means it is forwarded properly, but your software firewall is blocking it, or the program (Halo) is not opened to receive the connection.
|What the hell is the difference between port forwarding and port triggering? I tried opening the ports using both... features.... with no success. |
Both of them does the same thing. Port Forwarding forwards the port all the time, while Port Triggering only forwards the port when a connection from inside your network is sent out. Just use Port Forwarding - it's much more simple and gets the job done.
Thanks for the replies guys.
I would also like to attribute the problem to the router. However, you need to understand the setup of the routers/modem in my house. Like I said, I have Comcast (Broadband) internet. Its pretty fast.
So... |Modem| is connected to |Router 1 (Linksys WRTU54G-TM)| which is connected to |Router 2 (Generic Brand from CompUSA)| which is then connected to my computer.
Is it possible that both routers have individual firewalls/protections/ports that need forwarding?
Also, I've been through the port forwarding process for at least one of my routers (The linksys one) already. I managed to change the report from STEALTH to CLOSED. How do I get the ports to open?
What if I eliminate the second router?
Does Comcast have a history of blocking game hosting? If so, anything that I can do about it?
Thanks for walking me through the firewall exceptions bit. I added exceptions to COMODO and Windows Firewall (which are still both disabled as far as I can tell).
Bottom line is that I'm having no luck.
Oh and I'm fairly certain that I assigned a static ip address. Now,
I assigned it to be 192.168.1.19. You recommended 192.168.1.200 (something with a three digit last figure). Does that matter? If so, I'll change it.
I am aware of both my global (or remote) IP address as well as my local network's IP address. What I am wondering is if the game only sees my local ip address, does that mean im screwed over in terms of receiving remote connections?
The Custom Port Test results are:
Port 80 is Closed.
Port 2302 is Closed.
Port 2303 is Closed.
Remember this is after port forwarding. I will be uploading a screenshot momentarily, so you can check to see if I've forwarded my ports properly from my router status screen.
Bloody ports won't open!!!
Thanks for all your help guys!!!
|I am aware of both my global (or remote) IP address as well as my local network's IP address. What I am wondering is if the game only sees my local ip address, does that mean im screwed over in terms of receiving remote connections? |
I used to play Halo quite a while ago and I believe when you host a game, it will show your local IP address when you press F1 or whatever key for the stats. That wouldn't matter at all. As long as you create an Internet game and not LAN.
|Port 80 is Closed.
Port 2302 is Closed.
Port 2303 is Closed.
That would mean that nobody can see those ports at all. I'm sure you've done all the port forwarding correctly. So it's almost definitely the modem or the other router you mentioned. Because the modem might have NAT/NAPT (Network Address Translation) so it doesn't allow incoming connections to reach your computer inside the network.
For example what I did for my home network was set a "NAPT default server" to the IP address of my router. So all connections are sent to that router and then set port forwarding on that router accordingly. There should be a similar setting (might be a different name) on your modem depending on the brand/type.
|I added exceptions to COMODO and Windows Firewall (which are still both disabled as far as I can tell). |
Just turn off Windows Firewall permanently. There's no need for two firewalls especially when the latter is crap.
I can confirm that my ISP is blocking me from hosting. I successfully went to three different friends' houses and forwarded the ports correctly on their routers. They can now host successfully. I doubt I'll win my fight with comcast, but that is the problem.