To setup port forwarding correctly on a router/behind NAT do the following.
setup a static IP address
- use the following tool http://portforward.com/help/setup_static_ip_address.htm
- Download/install and then click "make it static"
Find your router's internal IP address
- start -> Run -> CMD and in the command prompt type
"ipconfig" without quotes.
The internal IP address will be the "Default Gateway" under your Ethernet Connection.
http://portforward.com/networking/routers-internal-ip-address.jpg
Example: 192.168.0.1
Connect to your router's web interface:
In your browser, type in the router's internal ip address that you aqquired above and press enter
It should prompt you for a username and password. Enter it or if you never set one, you can find a list of default
username/passwords for most routers here: http://www.speedguide.net/default_passwords.php
Once in your router, look for a section called Applications & Gaming or something like it.
You'll need to find "Port Range Forwarding" and input the following ports
TCP Ports- 80, 443, 9988, 17502, 20000-20100, 22990, 42127
UDP Ports- 3659, 14000-14016, 22990-23006, 25200-25300
Where it asks for ip address, once again, enter your router's internal IP address
example: Application | start | end | protocol | ip address | enable |
BF4 | 443 | 443 | TCP | 192.168.0.1 | check yes |
Save settings and now BF4 should connect and then load level like it hasn't been doing.
EDIT: I was having the exact same issues, disabled firewall even in services.msc, updated punkbuster but still - most of the time I couldn't connect to any servers. It would say "connecting" and eventually give me an error. After doing the above, I have been able to connect repeatedly to any server I have tried without issue. Hope this helps.