¿Por qué Tomcat6 no se vincula al puerto 80?

¿Por qué Tomcat6 no se vincula al puerto 80?

Soy consciente de las implicaciones de ejecutar Tomcat en el puerto 80, pero busco una solución rápida. Estoy tratando de seguir estotutorial. He seguido el tutorial con dos cambios:

  • tomcat6 es el nombre de usuario con el que se ejecuta tomcat
  • La ubicación del archivo de configuración de Tomcat:/usr/share/tomcat6/bin/catalina.sh

Pero sigo recibiendo errores de permisos. Java dice que no puede conectarse al puerto 80. ¿Qué más debería hacer? ¿Qué otra información debo proporcionar para que las personas puedan depurar? Sólo para confirmar, no hay nada más ejecutándose en el puerto 80.

Respuesta1

Puede cambiar la propiedad AUTOBIND de /etc/default/tomcat6a "sí" de la siguiente manera:

AUTHBIND=yes

Reinicie su Tomcat y eso le permitirá utilizar el puerto privilegiado disponible (1-1023).

Respuesta2

Hay dos formas diferentes de hacer esto sin tocar la configuración de Tomcat.

Puede crear un script de iptables que redirija el tráfico desde el puerto 80 al puerto 8080 (entonces no necesitará manipular la configuración de Tomcat)

para iptables

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 80 ¡Haría el truco! (cree un script para que se haga automáticamente en uppstart

o puede crear un proxy inverso de Apache que realmente represente las conexiones a su servidor Tomcat a través de él (esto es bueno ya que en realidad puede almacenar en caché las solicitudes y acelerar las conexiones para usted)

Respuesta3

En el conector HTTP de Tomcat, asegúrese de que su conector en el puerto 80 esté vinculado a TODAS las interfaces, o 0.0.0.0, en lugar de solo 127.1. Eso podría explicar por qué no puedes conectarte con una URL como http://10.0.0.2:80 pero puedes con http://127.1:80

Respuesta4

Inicie los servicios de Tomcat usando authbind. Esto permitirá al usuario iniciar puertos menores a 1024, no necesitamos redirigir ni iptables.

apt-get instalar authbind -y

Para instalar el software Authbind

chmod -R 755 /etc/authbind

El grupo debe ser un grupo de usuarios.

chown -Rh raíz:grupo /etc/authbind

Después de eso, ejecute los siguientes comandos.

CD /etc/authbind/byuid

Como ejemplo, imaginemos que la identificación de usuario es 2000. Puede usar su número de identificación de usuario.

eco '0.0.0.0/0:1,1023' > 2000

Ese archivo debe ser propiedad del usuario y del grupo.

chown: 2000

chmod 700 2000

Agregue la siguiente línea en el archivo de inicio de Tomcat $CATALINA_BASE/startup.sh

export JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"

Para iniciar Tomcat utilizando el servicio Authbind startup.sh

Comenta la línea de abajo

#$CATALINA_HOME/bin/startup.sh

Agregue este final como final del archivo

AUTHBIND_COMMAND="/usr/bin/authbind --deep /bin/bash -c " 

$AUTHBIND_COMMAND $CATALINA_HOME/bin/startup.sh   

ahora debería poder iniciar los servicios de Tomcat como usuario con menos de 1024 puertos.

información relacionada