tomcat7 port80 ubuntu-14.04

Tomcat7 se une al puerto 80 falla en Ubuntu 14.04LTS



port80 ubuntu-14.04 (4)

Deje el puerto 8080 de forma predeterminada en server.xml

Ejecutar: sudo / sbin / iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT - to-port 8080

ES Esto redirige el tráfico del puerto 80 al 8080 (predeterminado en tomcat) en Ubuntu 14.04. No es posible establecer el puerto predeterminado en 80 en server.xml.

FR (Ceci redirige le trafic du port 80 vers 8080 (Par défaut dans tomcat) dans Ubuntu 14.04 il n''est pas possible de mettre le puerto par défaut à 80 dans server.xml.)

Para que esto sea persistente: sudo apt-get install iptables-persistent

ES Este paquete le permite guardar las reglas de iptables previamente ingresadas. Asegúrese de responder que sí (guarde la configuración actual). FR Ce paquete permet de sauvegarder les règles iptables entrées précédemment. Il faut répondre ou aux questions, (sauvegarder les paramètres actuels).

Tengo un problema con mi instalación de tomcat7 en un sistema Ubuntu recientemente actualizado. Desde la actualización a 14.04 LTS, tomcat se niega a iniciar en el puerto 80 con un error que no puedo resolver, ni encuentra nada sobre cómo solucionarlo:

Information: Initializing ProtocolHandler ["http-bio-80"] Apr 24, 2014 4:39:37 PM org.apache.coyote.AbstractProtocol init Schwerwiegend: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"] java.net.SocketException: Datei oder Verzeichnis nicht gefunden at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) at java.net.ServerSocket.bind(ServerSocket.java:376) at java.net.ServerSocket.<init>(ServerSocket.java:237) at java.net.ServerSocket.<init>(ServerSocket.java:181) at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49) at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:397) at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:640) at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434) at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119) at org.apache.catalina.connector.Connector.initInternal(Connector.java:978) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:813) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.startup.Catalina.load(Catalina.java:638) at org.apache.catalina.startup.Catalina.load(Catalina.java:663) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)

El caso es que hice exactamente lo que hice en Ubuntus anterior (corría 12.04 LTS), en resumen, edité server.xml en el puerto 80 y también cambié authbind en / etc / default / tomcat7 a yes, entonces básicamente todo lo que tienes que hacer para ejecutar tomcat en el puerto 80.

Hacer esos pasos en un 12.04LTS funciona bien, solo en el 14.04LTS ahora arroja este error de "archivo o directorio no encontrado".

Además, al actualizar un 12.04LTS (en el que tomcat funciona bien en el puerto 80) a 14.04LTS, de repente arroja el error anterior, mientras que todas las configuraciones son idénticas a las que funcionaron en 12.04LTS.

Espero que alguien pueda ayudarme a solucionar este problema.


Inicie los servicios de tomcat utilizando authbind, esto le permitirá al usuario iniciar puertos de menos de 1024 que no necesitamos redirigir o iptables.

apt-get install authbind -y

Para instalar el software Authbind

chmod -R 755 / etc / authbind

grupo debe ser grupo de usuarios.

chown -Rh root: group / etc / authbind

Después de eso ejecuta los comandos a continuación

cd / etc / authbind / byuid

Como ejemplo, permite que el ID de usuario de imagne sea 2000, puedes usar tu número de identificación de usuario

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

Ese archivo debe ser propio por usuario y 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 siguiente línea

#$CATALINA_HOME/bin/startup.sh

Agregar este final como el 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.


Los siguientes trabajos:

apt-get install authbind

Primero, configure AUTHBIND=yes en el /etc/default/tomcat7

sudo touch /etc/authbind/byport/80 sudo chmod 500 /etc/authbind/byport/80 sudo chown tomcat7 /etc/authbind/byport/80

Había una URL de referencia aquí, pero el sitio web ha sido pirateado (marcado como inseguro en Edge, y Chrome me pide que instale una extensión de navegador).


Yo tuve el mismo problema. Al final, utilicé una redirección de puerto iptables en lugar del mecanismo authpriv

es decir

1) en / etc / default / tomcat7, establezca authpriv = no

2) en /etc/tomcat7/server.xml, use

<Connector port=8080... en lugar de 80

3) ufw permite 8080 / tcp

4) siga las instrucciones aquí: https://serverfault.com/questions/238563/can-i-use-ufw-to-setup-a-port-forward

Lo mismo se puede hacer para el puerto 443 (SSL) si es necesario