Open port 80 on Ubuntu server
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
For Python-3:
sudo python3 -m http.server 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!
Related videos on Youtube
Admin
Updated on September 18, 2022Comments
-
Admin over 1 year
I'm just starting out in Ubuntu/Linux, and have some trouble opening port 80 for incoming connections.
I ran the
sudo ufw allow 80/tcp
command, and when I runsudo ufw status
the result looks like this:Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 80/tcp ALLOW Anywhere 22 (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6)
However, I still get this error when trying to connect to the port with cURL.
Failed to connect to MY_IP_ADDRESS port 80: Connection refused
When I run this command
netstat -ntlp | grep LISTEN
to see what ports are open, I get this result:(No info could be read for "-p": geteuid()=1000 but you should be root.) tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp6 0 0 :::22 :::* LISTEN -
Which doesn't look that promising..
How do I open port 80 for incoming connections?
-
Oliver Dixon about 7 yearsAs a note this is not permanent. Will reset on reboot.
-
azerafati about 7 years@OliverDixon, yes correct
-
Charles Green almost 7 yearsThis would have been a great edit to the answer dated 4/2016
-
Idemax over 5 yearsis this permanent?
-
John over 2 yearsis it possible without
sudo
? -
étale-cohomology over 2 years@Idemax About
ufw
, I don't know. AboutSimpleHTTPServer
, it lasts for as long as you run it.