Warum lässt sich Tomcat6 nicht an Port 80 binden?

Warum lässt sich Tomcat6 nicht an Port 80 binden?

Ich bin mir der Auswirkungen bewusst, die es hat, wenn Tomcat auf Port 80 läuft, aber ich bin auf der Suche nach einer schnellen Lösung. Ich versuche, dies zu befolgenLernprogramm. Ich bin dem Tutorial mit zwei Änderungen gefolgt:

  • tomcat6 ist der Benutzername, unter dem Tomcat ausgeführt wird
  • Der Speicherort der Tomcat-Konfigurationsdatei:/usr/share/tomcat6/bin/catalina.sh

Aber ich bekomme immer noch Berechtigungsfehler. Java sagt, es kann keine Verbindung zu Port 80 herstellen. Was sollte ich sonst tun? Welche anderen Informationen sollte ich den Leuten zum Debuggen zur Verfügung stellen? Nur zur Bestätigung: Auf Port 80 läuft nichts anderes

Antwort1

/etc/default/tomcat6Sie können die AUTOBIND-Eigenschaft wie folgt auf „yes“ ändern :

AUTHBIND=yes

Starten Sie Ihren Tomcat neu und Sie können den verfügbaren privilegierten Port (1-1023) verwenden.

Antwort2

Es gibt zwei verschiedene Möglichkeiten, dies zu tun, ohne die Tomcat-Konfiguration tatsächlich zu berühren.

Sie können ein iptables-Skript erstellen, das den Datenverkehr von Port 80 auf Port 8080 umleitet (dann müssen Sie nicht an den Tomcat-Einstellungen herumfummeln).

für iptables

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 80 würde es tun! (erstellen Sie ein Skript, damit es automatisch bei uppstart erledigt wird

oder Sie können einen Apache-Reverse-Proxy erstellen, der die Verbindungen zu Ihrem Tomcat-Server tatsächlich über ihn leitet (das ist gut, da er Anfragen tatsächlich zwischenspeichern und Verbindungen für Sie beschleunigen kann)

Antwort3

Stellen Sie im Tomcat-HTTP-Connector sicher, dass Ihr Connector auf Port 80 an ALLE Schnittstellen oder 0.0.0.0 und nicht nur an 127.1 gebunden ist. Das könnte erklären, warum Sie keine Verbindung mit einer URL wie http://10.0.0.2:80 aber man kann mit http://127.1:80

Antwort4

Starten Sie die Tomcat-Dienste mit Authbind. Dadurch kann der Benutzer Ports unter 1024 starten. Eine Umleitung oder Iptables sind nicht erforderlich.

apt-get install authbind -y

So installieren Sie die Authbind-Software

chmod -R 755 /etc/authbind

Gruppe sollte eine Benutzergruppe sein.

chown -Rh root:Gruppe /etc/authbind

Führen Sie anschließend die folgenden Befehle aus

cd /etc/authbind/byuid

Nehmen wir als Beispiel an, die Benutzer-ID ist 2000. Sie können Ihre Benutzer-ID-Nummer verwenden

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

Diese Datei sollte dem Benutzer und der Gruppe gehören.

chown: 2000

chmod 700 2000

Fügen Sie die folgende Zeile in die Tomcat-Startdatei $CATALINA_BASE/startup.sh ein

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

Zum Starten von Tomcat mit dem Authbind-Dienst startup.sh

Kommentieren Sie die folgende Zeile

#$CATALINA_HOME/bin/startup.sh

Dieses Ende als Ende der Datei hinzufügen

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

$AUTHBIND_COMMAND $CATALINA_HOME/bin/startup.sh   

Jetzt sollten Sie Tomcat-Dienste als Benutzer mit weniger als 1024 Ports starten können.

verwandte Informationen