![¿Por qué Tomcat6 no se vincula al puerto 80?](https://rvso.com/image/959228/%C2%BFPor%20qu%C3%A9%20Tomcat6%20no%20se%20vincula%20al%20puerto%2080%3F.png)
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/tomcat6
a "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.