How to configure Jenkins to run on port 80 How to configure Jenkins to run on port 80 jenkins jenkins

How to configure Jenkins to run on port 80


Another solution is to simply use iptables to reroute incoming traffic from 80 to 8080. The rules would look like:

-A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT-A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT-A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Reformatted as an iptables.rules file:

*filter:INPUT ACCEPT [100:100000]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [95:9000]-A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT-A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPTCOMMIT*nat-A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080COMMIT

The advantage of a iptable.rules file is the rules can persist after reboots. Just make sure to integrate any other current iptable rules into the same file!

On Redhat/CentOS this file can go in /etc/sysconfig/iptables.

On Debian/Ubuntu systems they can be saved in /etc/iptables/rules.v4 by using the iptables-persistent package. Or the iptable.rules can be called by modifying /etc/network/interfaces or hooking into if-up/if-down scripts. The Ubuntu Community wiki has a great page explaining these methods.

As is usually the case with networking, there's a lot of different ways to accomplish the same result. Use what works best for you!


  1. Go to /etc/default folder --> Open the file "jenkins"
  2. Modify the line HTTP_PORT=8080 as HTTP_PORT=80
  3. Start jenkins as root by using the command: sudo /etc/init.d/jenkins start
  4. Open a browser and browse as localhost:80

that's it


Give a try to 'authbind':

sudo apt-get install authbindsudo touch /etc/authbind/byport/80sudo chmod 500 /etc/authbind/byport/80 sudo chown jenkins /etc/authbind/byport/80

Then modify the script above to have (add authbind before the $JAVA_HOME/bin/java part):

exec daemon --name=jenkins --inherit --output=$JENKINS_LOG/jenkins.log \--user=$USER -- authbind $JAVA_HOME/bin/java $JAVA_OPTS \-jar $JENKINS_ROOT/jenkins.war $JENKINS_ARGS \--preferredClassLoader=java.net.URLClassLoader

For newer Jenkins installations (1.598) on newer Ubuntu installations (14.04) edit /etc/init.d/jenkins and add authbind before $JAVA

$SU -l $JENKINS_USER --shell=/bin/bash -c "$DAEMON $DAEMON_ARGS -- authbind $JAVA $JAVA_ARGS -jar $JENKINS_WAR $JENKINS_ARGS" || return 2

As mentioned by Alan (see comment below) if you need IPv6 and your system is lower than Quantal you can instead of using apt-get to install authbind download a higher version. Make sure you have libc6 and libc6-udeb installed. Here is authbind version 2.1.1 from Ubuntu:

Then execute:

sudo dpkg -i authbind_2.1.1_amd64.deb# or sudo dpkg -i authbind_2.1.1_i386.debsudo touch /etc/authbind/byport/80sudo chmod 500 /etc/authbind/byport/80 sudo chown jenkins /etc/authbind/byport/80