![Warum lässt sich Tomcat6 nicht an Port 80 binden?](https://rvso.com/image/959228/Warum%20l%C3%A4sst%20sich%20Tomcat6%20nicht%20an%20Port%2080%20binden%3F.png)
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/tomcat6
Sie 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.