Ich habe derzeit eine NAS-Box unter Port 80. Um von außen auf den NAS zuzugreifen, habe ich den Port 8080 wie folgt dem Port 80 auf dem NAS zugeordnet:
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.32.25.2:80
Das funktioniert wie ein Zauber. Dies funktioniert jedoch nur, wenn ich von außerhalb des Netzwerks auf die Website zugreife (bei der Arbeit, in einem anderen Haus usw.). Wenn ich mywebsite.com:8080
tippe, erledigen IPTables die Arbeit korrekt und alles funktioniert einwandfrei.
Das Problem ist nun, wie kann ich diesen Port von innerhalb des Netzwerks umleiten? Mein Domainname zeigt mywebsite.com
von innen auf meinen Router (meinen Linux-Server) (10.32.25.1), aber ich möchte Port 8080 von innen auf Port 80 auf 10.32.25.2 umleiten.
Irgendeine Ahnung?
Bearbeiten Sie # 1
Um diese Frage zu erleichtern, habe ich dieses Diagramm zusammengestellt. Bitte zögern Sie nicht zu aktualisieren, wenn es falsch ist oder falsch darstellt, wonach Sie suchen.
iptables
| .---------------.
.-,( ),-. v port 80 |
.-( )-. port 8080________ | |
( internet )------------>[_...__...°]------------->| NAS |
'-( ).-' 10.32.25.2 ^ 10.32.25.1 | |
'-.( ).-' | | |
| '---------------'
|
|
__ _
[__]|=|
/::/|_|
10.32.25.1:8080
Weiterleiten an sagen10.32.25.2:80
. Meine obige Regel lautet: Arbeiten von außen, aber nicht von innen in meinem Netzwerk. Also , wenn ich im Büro bin, kann ich meine NAS aus zugreifen website.com:8080 und es ist völlig transparent. Von zu Hause aus zeigt website.com:8080 auf 10.32.25.1, da es sich um meinen Router oder Linux-Server handelt. Ich möchte den Port 8080 auch auf Port 80 zum NAS umleiten, aber wieder auf transparente Weise.eth0 10.32.25.2
, damit wir iptables schreiben können, die auf der eingehenden Schnittstelle basierenAntworten:
Ich habe endlich eine Anleitung gefunden. Zuerst musste ich
-i eth1
meine "externe" Regel ergänzen (eth1 ist meine WAN-Verbindung). Ich musste auch zwei andere Regeln hinzufügen. Hier am Ende, was ich mitgebracht habe:quelle
Sie haben auch vergessen zu erwähnen, dass die Paketweiterleitung aktiviert sein sollte, um das Ziel-NAT ausführen zu können. Standardmäßig ist es normalerweise deaktiviert, sodass iptables-Regeln nicht funktionieren. Es kann aktiviert werden, indem Folgendes ausgegeben wird:
quelle
Erlauben Sie zuerst die Weiterleitung mit
Dann setzen Sie iptable Regeln mit
Sie können diese Zeilen
/etc/rc.local
beispielsweise einfügen. Hinweis: Da Debian Jessie es ausführbar macht und den rc.local-Dienst über aktiviertquelle
Zuerst müssen Sie überprüfen, ob Sie die Weiterleitung aktiviert haben:
cat /proc/sys/net/ipv4/ip_forward
Wenn nicht
1
, laufen Sieecho 1 > /proc/sys/net/ipv4/ip_forward
.Wenn Sie möchten, dass Datenverkehr, der 10.32.25.1 auf Port 80 und 443 erreicht, an den 80port von 10.32.25.2 weitergeleitet wird, sollten Sie die folgende Regel verwenden:
quelle