Wie erstelle ich einen TCP-Proxy, der mehrere Hosts unterstützt?

Wie erstelle ich einen TCP-Proxy, der mehrere Hosts unterstützt?

Ich möchte einen TCP-Proxy erstellen, der mehrere Hosts unterstützt. In dem Beispiel, das ich gesehen habe, wurde ein DNS-Server verwendet, um einen bestimmten Host auf einen TCP-Proxy zu verweisen, in dem der Host fest codiert war. Der TCP-Proxy kann nicht mehrere Hosts verarbeiten, denn wenn alle Hosts an den TCP-Proxy weitergeleitet würden, wüsste der Proxy nicht, wohin er die Daten senden soll. Gibt es Möglichkeiten, dieses Problem zu umgehen?

Antwort1

TCP funktioniert über IP und IP kennt keine Host(namen), sondern nur IP-Adressen.

Daher kennt TCP auch nur IP-Adressen, keine Hostnamen.

Wenn Sie Hostnamen verarbeiten möchten, benötigen Sie ein Protokoll zusätzlich zu TCP (z. B. HTTP, SSH usw.) oder müssen vor der Verwendung von TCP Namen in IP-Adressen übersetzen, wie es das DNS normalerweise bereitstellt.

Oder Sie müssen Ihren „TCP“-Proxy so einrichten, dass er auf verschiedenen Ports lauscht und die Dinge je nach dem Port, auf den zugegriffen wird, weiterleitet. Allerdings haben Sie immer noch das Problem, Namen nicht nur einer IP-Adresse (des Proxys), sondern auch dessen Port zuzuordnen, was mit DNS zwar möglich, aber schwieriger ist (wenn Sie den Client steuern, können Sie das mithilfe von SRVDatensätzen oder in Zukunft tun SVCB).

verwandte Informationen