Können Sie dieselbe Portnummer an zwei verschiedene interne IP-Adressen weiterleiten?

14

Kann ich von meinem anderen Laptop aus auf Port 80 zugreifen, wenn ich den Forward-Port 80 UDP auf meinem PC portiere?

Octocat
quelle
1
Nein; Wenn Sie einen Port weiterleiten, senden Sie den gesamten Datenverkehr an eine einzelne Adresse. Wenn Sie zwei Geräte benötigen, um die Daten an demselben Port zu empfangen, müssen Sie sie an ein einzelnes Gerät weiterleiten, das diese beiden zusätzlichen Geräte mit dem Netzwerk verbindet (z. B. einen anderen Router).
Ramhound
1
Port 8080 kann als Alternative zu 80 auf dem Sekundärsystem sicher verwendet werden. Leiten Sie also 80 an den PC und 8080 an das Notebook weiter, wenn dies für Ihre Anforderungen erforderlich ist.
Overmind
Sie schreiben: "Wenn ich Port 80 UDP auf meinem PC portiere, kann ich von meinem anderen Laptop aus auf Port 80 zugreifen?" <--- Nun, offensichtlich, sonst, wozu dient die Hafenbearbeitung?
Barlop
AT Ramhound Wirklich, ok, warum erklärst du nicht, wie du das machen würdest ?
Barlop
1
Ich empfehle Ihnen, die Antwort von VL-80 zu akzeptieren. Seine Antwort ist sehr gut. Es beantwortet , was Sie eigentlich asked-- niemand sprechen , wie es beantwortet , was Sie gemeint zu fragen.
David Betz

Antworten:

14

Sie stellen hier zwei verschiedene Fragen.

Können Sie dieselbe Portnummer an zwei verschiedene interne IP-Adressen weiterleiten?

Denk darüber nach. Wenn ein Paket an Ihrer externen Adresse und am UDP-Port 80 ankommt (vorausgesetzt, Sie haben nur eine externe IP-Adresse), wie würde Ihr Router wissen, an welche der beiden internen IP-Adressen es weitergeleitet werden soll?

Wenn Sie zwei verschiedene Dienste hosten möchten, benötigen Sie jeweils einen separaten Port.

Kann ich von meinem anderen Laptop aus auf Port 80 zugreifen, wenn ich den Forward-Port 80 UDP auf meinem PC portiere?

Ja. Die Portweiterleitung betrifft im Allgemeinen nur Pakete, die Port 80 auf Ihrer Seite haben. Wenn jemand versucht, eine Verbindung zu Ihnen herzustellen, sieht Ihr Router Folgendes:

  • eingehendes Paket vom zufälligen Port X eines anderen Computers zu Ihrem Port 80
  • ausgehende Antwort von Ihrem Port 80 auf den Port X eines anderen

Bei ausgehenden Verbindungen (wenn Sie eine Webseite an einer anderen Stelle besuchen) wird dies jedoch aus Sicht Ihres Routers umgekehrt.

  • ausgehendes Paket von Ihrem zufälligen Port X zum Port 80 des anderen Computers (Webservers)
  • eingehende Antwort vom Port 80 des anderen an Ihren Port X.

Die Portweiterleitung wirkt sich also überhaupt nicht auf diese aus.

(Übrigens läuft HTTP im Allgemeinen unter TCP . Nur die QUIC-Experimente von Chrome verwenden UDP.)

user1686
quelle
Wenn Sie nicht wissen, an welche der beiden internen IP-Adressen es weitergeleitet werden soll , senden Sie sie an den Server 192.168.1.100 und den Server 192.168.1.101.
Pacerier
1
@Pacerier: Was wird der Client tun, wenn er zwei völlig unterschiedliche Antworten erhält? Es werden nicht automatisch zwei Verbindungen hergestellt, bei denen ein Programm nur eine angefordert hat. Bestenfalls akzeptiert es ein Antwortpaket und verwirft das andere, was nutzlos ist, da Sie nicht sagen können, welchen Server Sie möchten ... es sei denn, sowohl .100 als auch .101 bieten genau die gleichen Dienste (Lastausgleich). Im schlimmsten Fall verhindert die zweite Antwort sogar, dass der erste Verbindungsversuch beendet wird (z. B. wenn der zweite Server weiterhin Pakete empfängt, die für den ersten bestimmt sind, antwortet er weiterhin mit TCP-RSTs)
user1686
1
@Pacerier: Im speziellen Fall des Lastausgleichs (mit nahezu identischen Servern) ist dies möglich - siehe die Antwort von VL-80 unten für weitere Einzelheiten. Tatsächlich gibt es Lastausgleichsprogramme, die das ursprüngliche Paket duplizieren und den Server verwenden, der am schnellsten geantwortet hat. Wenn Sie jedoch zwei verschiedene Websites auf diese Weise hosten möchten, funktioniert dies nicht, da der Browser den Hostnamen der Website erst lange nach dem Herstellen der TCP-Verbindung sendet .
user1686
4

Können Sie dieselbe Portnummer an zwei verschiedene interne IP-Adressen weiterleiten?

Ja, Sie können dies absolut mit UDP und bis zu einem gewissen Grad mit TCP tun .

Da UDP ein verbindungsloses zustandsloses Protokoll ist, können Sie auf einen bestimmten Port warten. Sobald das Paket eingetroffen ist, können Sie es kopieren und an zwei verschiedene interne Ziele senden. Da es keine Handshakes oder Statusverfolgung gibt, können alle Ziele diese Pakete erfolgreich empfangen. Samplicator ist eines der Programme, die dies für Sie tun können. Beachten Sie, dass dies laut Definition keine reine Portweiterleitung ist.

Dies ist für TCP möglich , jedoch mit einigen Einschränkungen. Sie können auf einen bestimmten Port warten und ihn nach Eingang des Pakets an einen bestimmten internen Host in einem Pool weiterleiten. TCP verwendet Verbindungen. Sobald Sie ein erstes Paket an einen bestimmten internen Host weitergeleitet haben, müssen Sie nun den Rest der Pakete in dieser Sitzung an denselben internen Host weiterleiten.

Mithilfe dieser Technologie können mehrere Back-End-Server Anforderungen an ein externes Ziel verarbeiten.

Kann ich von meinem anderen Laptop aus auf Port 80 zugreifen, wenn ich den Forward-Port 80 UDP auf meinem PC portiere?

Diese Frage ist etwas unklar. Wenn Sie Datenverkehr von Ihrer externen Adresse an einen der internen Hosts weiterleiten, hindert Sie diese Tatsache allein nicht daran, vom internen Netzwerk aus auf denselben Port zuzugreifen.

Angenommen, Sie leiten Port 80 von Anach weiter B. Gleichzeitig Ckann problemlos direkt auf Port 80 Bzugegriffen werden.

     A (external IP)
     |
 ---------
 |       |
 B       C
VL-80
quelle
2
Die Frage betrifft Router. Kein Consumer-Router verfügt über die von Ihnen beschriebenen UDP-Kopier- / TCP-Lastausgleichsfunktionen, und nichts davon wird jemals als "Portweiterleitung" bezeichnet.
Jason C
4
1) In der Frage wird nicht angegeben, dass es sich um ein Gerät auf Verbraucherebene handeln muss. 2) Unabhängig davon, was Sie geschrieben haben, funktioniert die von mir beschriebene Technik.
VL-80
2
Kein professioneller Router verfügt über diese Funktionen, es sei denn, das Paket enthält mehr als nur einen Router. Es handelt sich nicht um eine Portweiterleitung, und Router führen diese Funktionen nicht aus. Die Frage stellte sich nach "Portweiterleitung" und wurde als Router markiert . Denken Sie an die Personen, die dieselbe Frage haben würden, finden Sie sie und lesen Sie Ihre Antwort. Überlegen Sie, ob Sie helfen oder verwirren. Ihre Terminologie ist sowieso alles falsch.
Jason C
Sie schreiben: "Dies ist für TCP möglich. Sobald Sie ein erstes Paket an einen bestimmten internen Host weitergeleitet haben, müssen Sie jetzt die restlichen Pakete in dieser Sitzung an denselben internen Host weiterleiten." <--- Wie ist das mit TCP möglich? Sie erwähnen Samplicator für UDP, ok ... damit es für UDP kopiert wird. Aber was schlagen Sie für TCP vor?
Barlop
4
Diese Antwort ist gut. Ich wollte gerade etwas Ähnliches sagen. Bei UDP geht es bei Multicast und IGMP darum. TCP, ja, Roundrobin, Failover usw. Ja, Router können dies - heutige Router sind keine blinden Geräte aus den 90er Jahren. Die Frage ist vage genug, um mehrere Lesungen zuzulassen, aber so lese ich auch die Frage.
David Betz
1

Sie können nicht denselben Port gleichzeitig an mehrere IP-Adressen weiterleiten. Ich habe noch nicht einmal einen Router / verwalteten Switch gesehen, mit dem Sie dies sogar tun können, ohne eine Konfigurationsfehlermeldung zurückzusenden. Sie können es für mehrere IPs einrichten, es kann jedoch jeweils nur eine der Weiterleitungsregeln aktiviert werden. Sie können also eine Aktivierung deaktivieren und umgekehrt, aber das ist eine Verschwendung. Sie müssen sich nur um die Weiterleitung von Ports sorgen, wenn Sie über die externe IP-Adresse auf bestimmte Ports / Dienste auf dem LAN-Computer zugreifen möchten. Angenommen, Sie möchten 2 Webserver auf 2 Ihrer LAN-PCs ausführen und jederzeit auf beide zugreifen können. Der einfachste Weg, dies zu tun, besteht darin, die Ports der Dienste zu ändern, einen auf Port 80 abzuhören und den anderen auf 8080 oder Port, den Sie wollen. Mit 99% der Dienste können Sie jeden gewünschten Port hosten / abhören. Wenn Sie keinen Port angeben, wird auf den Standarddienst zurückgegriffen. Es gibt andere fortgeschrittenere Methoden, aber dies ist die einfachste Methode, und die fortgeschrittenen Methoden werden nicht in Betracht gezogen oder als "Port Forwarding" bezeichnet, wenn jemand sagt, dass etwas anderes zur Netzwerkschule zurückkehren muss.

JohnRB
quelle
1
"Ich habe noch nicht einmal einen Router / verwalteten Switch gesehen, mit dem Sie das überhaupt tun können ..." - Mit dem Technicolor TC7200.U- Router für Endverbraucher können Sie die Weiterleitungskonfiguration für dieselben Ports an verschiedene IP-Adressen hinzufügen. Ich bin mir nicht sicher, ob es tatsächlich vorwärts geht.
Jonathan Cross
-2

Denk darüber nach. Wenn ein Paket an Ihrer externen Adresse und am UDP-Port 80 ankommt (vorausgesetzt, Sie haben nur eine externe IP-Adresse), wie würde Ihr Router wissen, an welche der beiden internen IP-Adressen es weitergeleitet werden soll?

Wenn Sie zwei verschiedene Dienste hosten möchten, benötigen Sie jeweils einen separaten Port.

Woher weiß Ihr Router, dass er Adressen weiterleitet? Wegen NAT.

Wenn Sie eine Domain kaufen, können Sie diesen Domainnamen als Computernamen und NETBIOS-Namen festlegen.

Zum Beispiel müssen 2 verschiedene Computer, auf denen Websites an verschiedenen internen, aber an denselben externen Ports gehostet werden, nach Domänen benannt werden, oder Sie müssen Ihren internen DNS-Server so einrichten, dass beiden Domänen interne IP-Adressen zu den Einträgen hinzugefügt werden, zu denen der Router eine Verbindung herstellt, und jedes Mal, wenn jemand versucht, eine Verbindung herzustellen Domänenname (nicht die öffentliche IP-Adresse) Router NAT leitet die Verbindung entsprechend weiter.

Sie können nicht genau identische Ports an mehrere IPs im selben Netzwerk weiterleiten, aber Sie können dieselben externen Ports verwenden, solange sich die internen Ports unterscheiden, und umgekehrt, wenn Sie über ausgehenden Netzwerkverkehr sprechen

user241367
quelle
Bitte kopieren Sie keine anderen Antworten.
Scott