I have a HTTP server (web server) on my machine and I want to make it available on the Internet but I'm actually on a LAN behind a router.
The first steps are: to open a port and activate port forwarding at the router level.
Configuring your router
It is necessary to configure the router to perform port mapping (or port forwarding). The router primary role is to acheive what is called the Network Address Translation (NAT). It is sufficient to specify that web server port of your machine(80) will match the port 80 of the router. Most of the time, the router's configuration interface is accessible via a URL such as http://192.168.0.1 or http://192.168.1.1. For some routers the Private IP address is required!
The screenshot below shows the interface of a Linksys router ('Applications and Gaming' tab):
==configuring the Firewall===
This part is for those who have a firewall installed on their machine. If you don't have one, it's a great security issue.
A firewall, will act as a gate. It is often strict: It lets nothing happen (enter or exit) without your confirmation.
Define the port(s) to open and/or close ... but be careful not to open all ports, if your firewall is not needed anymore ...
The procedure will depend on the firewall software installed!
The NAT, can only translate one address at a time, which is unthinkable when more than one machine must initiate connection on the net. Port Address Translation (PAT) allows more than one IP address to be translated at once. Routers supporting PAT (including CISCO routers) will record the addresses (external) that made a request to access your machine