Updated: October 16, 2018

Understanding Port Forwarding – Beginners Guide

Firewall-function-overviewWhat is Port forwarding ? and What Does it do?

Port forwarding is a technique that is used to allow external devices access to computers services on private networks.

Most online gaming Applications will require you to configure port forwarding on your home router.

To understand port forwarding you need to understand what a TCP/IP port is and how ports and IP addresses are used together.

You will also need to appreciate the difference between internal and external IP addresses and ports.

TCP/IP Ports

A TCP/UDP port identifies an application or service on a machine in a TCP/IP network.

On a TCP/IP network every device must have an IP address.

The IP address identifies the device.

However a device can run multiple applications/services.

The port identifies the application/service running on the machine.

The use of ports allow computers/devices to run multiple services/applications.

Standard Port numbers are allocated to server services (0-1023) by the Internet Assigned Numbers Authority (IANA). e.g Web servers normally use port 80 and SMTP servers use port 25.

The combination of IP address plus port is known as a socket. See Understanding TCP/IP Ports and Sockets

As an example. Imagine sitting on your PC at home, and you have two browser windows open. One looking at the Google website and the other at the Yahoo website.

the connection to Google would be:

Your PC – IP1+port 2020 ——– Google IP2 +port 80 (standard port)

the connection to Yahoo would be:

our PC – IP1+port 2040 ——–Yahoo IP3 +port 80 (standard port)

Notes: IP1 is the IP address of your PC. Client port numbers are dynamically assigned and can be reused once the session is closed.

Returning to Port forwarding..

On home or small office networks the ADSL router uses NAT (Network Address Translation) which allows internal devices to share a single external IP4 Address.

The IP addresses on the Internal network are private addresses and are not routable on the Internet.

External computers or devices only see the public IP address that is assigned to the ADSL router Interface.internal-external-IP-addresses

The NAT router maps an Internal IP address + Port to the external IP address + external port.

External devices send packets to the external IP address and port. The NAT router maps those packets and re-transmits those packets on the Internal network to the Internal IP address and internal port.

The ports used by NAT are normally randomly assigned which is OK when the session is initiated from the Internal network.

However if you want,for example, to host a website on your internal network and need to have that website to be accessible to external clients then you will need to use a standard port (port 80 for http) as the external client expects this.

To do this you statically map the external IP address + port 80 to the Internal IP address of the web server +port 80.– This is port forwarding.

For home users the most common reason to use port forwarding is gaming.

Enabling Port forwarding and Checking Open Ports

Before you setup port forwarding you will need to configure a static address for the Internal device.

This step is important as the forwarding will be set to send packets to a specific internal IP address.

Depending on your Application you may need a list of ports that need to be available from the the external network (i.e. Internet) and forwarded to the internal network.

To configure port forwarding on your router you will need admin privileges.

This site has a comprehensive guide covering 100s of routers, and also port lists for many of the games/applications.

Regardless of exactly how you configure it, as it varies by device, what you are essential doing is creating a mapping table that maps an external address and port to an internal address and port.

This video shows how to configure port forwarding on a BT Home Hub.

This video shows you how to set it up on a Linksys router. It also shows you how to set a static IP address for your machine.

Once you have forwarded the ports you may want to check that they are really open using an open port checker.

Connecting to a Forwarded Port

To connect to the forwarded port from the Internet you will need to know the external IP address of the Router and the Port number that has been forwarded.

However using an IP address instead of a domain name is not very convenient, in addition the external IP address can change as most ISPs assign these addresses using DHCP.

Therefore when using port forwarding you might also what to consider using Dynamic DNS.

Common Questions and Answers

Q- Is the External IP address mapped to the Internal IP Address?

A- No the external port is mapped, and not the external IP address. the external IP address might change see Dynamic DNS

Q- Should I use a static Internal IP address or can I use addresses assigned by DHCP?

A- You should always use a static one.

Q- Do I need to forward both the TCP and UDP port?

A- It depends on the application. You need to check which ports the application uses.

Q- How do I know if my device has a static address or a dynamic one?

A- You have to go to the device and examine the settings.

Q- How do I know what port I need to forward?

A- You need to know what port the service you want to use is using.However most home routers will have a list of common games and applications and you just need to select it and it will automatically select the ports.


Q- How do I know if I have configured it correctly

A- You can use an online port forwarding checker to check that the ports are open.

Q- What is strict NAT?

A- Microsoft define three levels of NAT- Strict,Moderate and Open. Devices that perform strict or moderate can affect Gamers on Xbox. See this article for help

Related Tutorials:


Please Let me Know if you found it Useful
[Total: 34 Average: 4]


  1. Well done Steve,
    Excellent article on the topic. Have looked at several explanations and “how to” for port forwarding and your efforts are by far the clearest I have seen to date. Many Thanks.

  2. Hi Steve

    Have forwarded a port on my router and created rules in Windows (10) Defender/Firewall to allow that port in and out. However, the port forwarding checker says it cannot see the port. Any ideas?

    NB I’m in South Africa, running via a VPN to London, England. Not sure if that makes a difference?

    1. hi
      your location doesn’t make a difference. Are you forwarding UDP? If UDP not sure that the port checker will detect it.
      I would recheck the config. You can send me a screen shot of your port forwarding screen on the router if possible and I’ll take a look. Use ask steve page.
      Do you have the url of the port forwarding checker?

  3. Ummm…. Iā€™m confused! I have TalkTalk and want to open UDP port 3075 to play call of duty but I have no idea what to do? I have no clue what application I should use or anything. By the way, I’m only 14 so please don’t judge. šŸ™‚

  4. Thank you Steve. I think I was doing it backward. I was trying to use a different port for each machine on the local network but what you’re saying makes a LOT more sense.

    I appreciate the followup.


  5. This is a really great simple article. Your break down of it really helped me flush out some of the gaps in my knowledge.

    The one thing I can’t seem to figure out is how to forward a service to multiple machines. For example, if I’m using port 5900 for remote access, but I want to access any of 10 different computers on my home network, how would I do that with a routing table? I feel like there is one piece of the puzzle I’m still not understanding.

    1. Hi
      You would use a different port on the external interface for each computer.e.g. 5900,5901,5902.
      on the internal network they could all use port 5900 as they have different IP addresses.
      On the external network they share the external IP address which is why they need to use different port numbers.

Leave a Reply

Your email address will not be published. Required fields are marked *

* Copy This Password *

* Type Or Paste Password Here *