codestory

Leiten Sie Port 80, 443 unter Ubuntu mithilfe von iptables um

  1. Das Problem mit Ubuntu
  2. Konfiguriere iptables

1. Das Problem mit Ubuntu

Wenn Sie zum Betriebsystem Linux (einschließend Ubuntu) mit einem user, der kein "root" ist, angemeldet haben, können Sie die Applikation mit dem Port < 1024 nicht starten. Nur "root" hat das Privileg (privilege) vom Starten solcher Applikation.
Deshalb: Wenn Sie als anderer user nicht "root" angemeldet haben, können Sie die Web-applikation mit dem Port 80 or 443 nicht implementieren. Ihre Website hat eine unfreundliche Addresse weil es die Port nummer (Port number) auf dem Pfad hat. Zum Beispiel:
  • http://yoursite.com:8080 (Die unfreundliche Addresse)
  • http://yoursite.com (Die freundliche Addresse).
In diesem Fall sollen Sie die Webapplikation in einem Port >= 1024 implementieren, z.B 8080. Der Benutzer griff Ihre Website durch den Port 80 zu, und es wird zum Port 8080 weitergeleitet (redirect). Die Weiterleitung wird durch das Betriebsystem durchgeführt, wie das folgdende Beispiel:
Sie sollen iptables.konfigurieren um weiterzuleiten

2. Konfiguriere iptables

Zuerst sollen Sie die laufenden Applikationen und das Port, das die Applikation gerade benutzt überprüfen
netstat -ntl
Tomcat läuft auf dem Port 8080:
Zunächst starten Sie den folgenden Befehl um vom Port 80 zum Port 8080 weiterzuleiten
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
Starten Sie den folgenden Befehl um die gute Weiterleitung sicherzustellen
sudo iptables -t nat -L
Zum weiteren sollen Sie die oben Konfigurationsinformation speichern um sicherzustellen, dass sie beim Wiederstarten des Betriebssystem gültig sind.
sudo sh -c "iptables-save > /etc/iptables.rules"

sudo apt-get install iptables-persistent
Beachen Sie: Wenn Sie die oben gemachten Konfiguration der Weiterleitung vom Port 80 zum Port 8080 löschen möchten, machen Sie den folgenden Befehl:
sudo iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
Test: