I’m trying to test out an internet game client/server, and it’s driving me crazy! Mostly I need to vent a bit, but I’m also hoping someone here can clue me in to where I’ve gone astray.
I’ve been hosting my game on my LAN for testing purposes, and everything works fine. So I figure I should move on to testing it on the internet, and it doesn’t work.
I first host on my laptop, port 9000. I then attempt to connect my client to this port at my external IP address. In theory this goes out via my wireless card, to my D-Link 614+ router, then to my Qwest/Actiontec DSL modem (in bridge mode). I have the router and DSL forwarding 9000, and the service is apparently visible from the internet.
This yields “connection refused”, though my server never sees anything. Running TcpView shows the outbound client connect attempt, but according to my ISP no net activity is coming out of my DSL… The web interfaces to my router and DSL are both very laconic, and I can’t tell whether they see the connect attempt or not. :-/
Arg! Is there somethinig simple I’m missing here?
Even if you are forwarding, the Firewall could be set to block 9000. Both hardware or software depending on what you have there.
Is 9000 the only port you need? You could try to telnet to that port to see what it shows you.
You’re router isn’t going to be sending this out over the DSL, because it’ll recognize the external ip address as itself. It should then forward to your server, but it might be failing to forward because the request is coming from an internal address-- it would depend on the details of the router firmware.
Kevin, 9000 is the only port I need (the actual port number could be whatever). The Router does have a firewall, but setting up the port forwarding also added a rule to the firewall, so it seems like it should work. Telneting to 9000 gives connect failed as well (which seems reasonable), and gives the same response whether the server is up or not.
antlers, I don’t follow what you’re saying. How would the router recognize the external ip address? It’s not on the internet, but rather on two different LANS, one shared with the DSL (where it’s 192.168.0.101), and my internal LAN (where it’s 192.168.0.1). Would it somehow get the external address from the DSL?
Refusing to forward the request because it’s an internal address does seem like it could describe what I’m seeing, although I get the same behavior when I also try to connect from another computer on my LAN.
As far as I can see the next logical step I can see is removing the router from the loop, and connecting straight to the DSL. That’s a bit of a pain in the ass though, and means my wife can’t use the internet. :-/
Ok, looks like you were on the right trail antlers. I got somone outside my LAN to attempt to connect, and it worked just fine.
I may have been wrong because I was seeing it through my cable-modem setup, where the router gets the external IP address from the cable modem via DHCP, and the cable modem doesn’t have an IP address at all. A DSL setup is unfamiliar to me; it seems like you’re saying that the router doesn’t know what the external IP address is because it doesn’t go beyond the DSL modem. So in this case your router is acting like a bridge, and the DSL modem is acting like a router. This makes sense since you said you had to set up the DSL modem to do port forwarding.
Your problem, then, could be the same, but it’s happening in the modem instead of the router. The modem, acting as a router, may be refusing to forward to 9000 because it only knows how to forward from external IPs. If this is the problem, removing your router from the equation won’t change anything
Agreed. The idea removing the router wasn’t so much to fix the problem, but to narrow it down to either the router or DSL.
Anyway, it’s moot now what’s responsible, as the “attempt to remotely connect from a local machine for testing purposes” schtick isn’t something I actually need to do. I just wanted to verify that it’d work remotely (Thanks Backov!).