Open port 80 on Ubuntu server

193,011

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!

Share:
193,011

Related videos on Youtube

Admin
Author by

Admin

Updated on September 18, 2022

Comments

  • Admin
    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 run sudo 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
    Oliver Dixon about 7 years
    As a note this is not permanent. Will reset on reboot.
  • azerafati
    azerafati about 7 years
    @OliverDixon, yes correct
  • Charles Green
    Charles Green almost 7 years
    This would have been a great edit to the answer dated 4/2016
  • Idemax
    Idemax over 5 years
    is this permanent?
  • John
    John over 2 years
    is it possible without sudo ?
  • étale-cohomology
    étale-cohomology over 2 years
    @Idemax About ufw, I don't know. About SimpleHTTPServer, it lasts for as long as you run it.