Debian / Ubuntu: Apache2 Change Default Port / IP Binding

Question: How do I change Apache 2 default port under Debian / Ubuntu Linux? I’ve couple of public IPv4 address assigned by my ISP, how do I force Apache2 to listen to a specific IP address? How do I change Apache2 IP address binding?

ADVERTISEMENTS

Answer: You can easily change the port and other settings using following directives:

Apache Listen Directive

The Listen directive instructs Apache to listen to more than one IP address or port; by default it responds to requests on all IP interfaces, but only on the port given by the Port directive. You can use this directive multiple times.

Task: Change Apache port

Open /etc/apache2/ports.conf file, enter:
# vi /etc/apache2/ports.conf
OR
$ sudo vi /etc/apache2/ports.conf
To make the server accept connections on both port 8010, enter:
Listen 8010
To make the server accept connections on both port 80 and port 8010, use:
Listen 80
Listen 8010

Task: Accept connections on specific IP / interface port

You need to use network interfaces IP address. For example, to make the server accept connections on IP 202.54.1.2 and port 80, enter:
Listen 202.54.1.2:80
To make the server accept connections on two specified interfaces and port numbers, enter:
Listen 202.54.2.1:80
Listen 202.54.2.5:8010

Save and close the file. Restart Apache 2 webserver:
# /etc/init.d/apache2 restart
OR
$ sudo /etc/init.d/apache2 restart

How do I verify port and IP binding working ?

Use netstat command to find out if Apache is listening on a specific port or not, use:
# netstat -tulpn
# netstat -tulpn | grep :80
# netstat -tulpn | grep :8010
# netstat -tulpn| grep 202.54.1.2:80

Sample output:

tcp        0      0 202.54.1.2:80            0.0.0.0:*               LISTEN     19306/apache2
🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source/DevOps topics:
CategoryList of Unix and Linux commands
File Managementcat
FirewallCentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNCentOS 8 Debian 10 Firewall Ubuntu 20.04

ADVERTISEMENTS
12 comments… add one
  • Felipe Ferreira Nov 25, 2008 @ 18:16

    Great Post.
    Simple and easy to understand.
    But I was wondering how I could server multiple IPs,Ports.
    How would the Virtual Hosts file look like?
    Is it enough to change the
    NameVirtualHost ?

    cheers,
    http://www.felipeferreira.net

  • Goncorpius Oct 23, 2010 @ 11:46

    Plz , i change port apache ia 81 but in address on browser my type is

    localhst:81 or 127.0.0.1:81 not search foulder content php www

    i edit port is 80 is ok

    why ?? plz

    • Cesar Dec 2, 2010 @ 15:38

      I’m with the same problem…

      • Khan Bhai Mar 16, 2012 @ 15:39

        my Apache server was not running but when i close all my start up programs like skype and utorrent then it work and apache server running.
        start up programs sometimes use the port of apache!

  • Melroy van den Ber Dec 13, 2010 @ 23:26

    They apparently forgot to say to change the following also:

    sudo nano /etc/apache2/ports.conf

    In file ports.conf, line 8.
    Find:
    NameVirtualHost *:80

    Change to:
    NameVirtualHost *:8080

    And!
    sudo nano /etc/apache2/sites-available/default

    In file default, line 1.
    Find:

    Change to:

    Eventually restart your apache2 server ;)

    sudo /etc/init.d/apache2 restart

    Good luck!

    Kind regards,
    Melroy van den Berg

    • ulysses Jan 2, 2012 @ 22:53

      oh thanks that helped alot

      • slavka Apr 18, 2013 @ 21:51

        Using specific ip and port but getting:
        ===============
        no listening sockets available, shutting down
        Unable to open logs
        Action ‘start’ failed.
        The Apache error log may have more information.
        failed!
        ==============

  • praveen Jul 4, 2011 @ 9:38

    what is the difference between the port 80 and 8080?

  • gauchoproluanco Feb 22, 2012 @ 16:15

    Hi guys,

    Like always, brilliant, simple and easy!!!

    Thanks,

    Luis

  • LG Jun 11, 2012 @ 16:16

    Something important!!!!

    If you just change the port or add more ports here, you will likely also
    have to change the VirtualHost statement in
    /etc/apache2/sites-enabled/000-default

    Regards

  • Peyman Aug 13, 2012 @ 7:31

    Hi.
    I get the following error:
    (99)Cannot assign requested address: make_sock: could not bind to address **.***.**.***:80
    what can I do?

  • Nisarg Pandya May 6, 2013 @ 20:53

    Hi Guys,

    Thank you very much for all the information and the comments.

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.