Solution 1:

There is no program listening on port 80 so it's closed and you can't connect to it.

You can use

sudo python -m SimpleHTTPServer 80

to start a simple web server listening on port 80, or install something like Apache (package apache2) if you want a full blown web server.

Solution 2:

UFW is the Uncomplicated Firewall. It manages what ports on your computer can be opened for listening by an application. sudo ufw allow 80/tcp means allow TCP connections to port 80.

However, there is nothing actually listening in behind the port. To curl the port, there should be an application that will send a reply. This is typically called a server. As @Florian points out, you can use Python's SimpleHTTPServer to test it.

Solution 3:

Use:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Then to prevent it from losing the iptables configuration on restart, use:

sudo apt-get install iptables-persistent

Solution 4:

well what worked for me was to use iptable

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Solution 5:

you can use sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT this accepts the port when it configures with the port to prevent from losing this terminal line of code you can use sudo apt-get install iptables-persistent The reason for sudo in the beggining of a command is to let it run as superuser the persistant uses it as a persistant connection to the port that is supplied. You can also use you can use Python's SimpleHTTPServer to test it! This was a great question! Thank You!