Senden von UDP-Paketen über SOCKS proxy
Baue ich eine einfache Anwendung, die das senden der UDP-Datenpakete, die durch einen socks4/5 proxy. Ich benutze UDP-Ansatz, so dass ich nicht haben, um die Verbindung(s) eröffnet.
Aber es war nicht so einfach, wie ich dachte. Nach diesem schema ich feststellen, dass ich nicht senden von UDP-Daten über einen proxy-ohne den Aufbau der TCP-Verbindung zunächst mit dem proxy-server.
Dennoch konnte ich nicht finden keine geeignete Beispiel für den Aufbau einer derartigen Verbindung in CPP. Ich wäre dankbar für jede Ressourcen 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es möglich. Sie geben an, Wert 0x03 in Feld 2 des client-Verbindungsanforderung entsprechend wikipedia Beschreibung von SOCKS5-Protokoll.
Als Hasturkun darauf hingewiesen,
Sollten Sie wirklich nehmen ein Blick auf Socks5-RFC
Mike, dein code funktioniert nicht, weil Sie versuchen, zu senden der UDP-Befehl verknüpfen, durch die ein UDP-Datagramm. Der SOCKS5-handshake muss über eine TCP-Verbindung.
Dein server muss immer eine offene TCP-Verbindung pro client, aber jeder client braucht nicht viele TCP-verbindungen öffnen - eine TCP-Verbindung zu behandeln können eine beliebige Anzahl von UDP-Befehle zuordnen.
Wenn Ihr Zweck ist nicht die Verwendung von TCP an alle, die auf der server-Seite, es wird nicht das erreichen, was Sie wollen. Die TCP-Verbindung wird benötigt, damit der SOCKS-proxy, der weiß, Wann distanzieren die UDP-ports (nämlich dann, wenn die TCP-Verbindung ausfällt).
Jedoch, Ihre server-Anwendung nicht brauchen, um über diese an alle. Die TCP-Verbindung beendet, bei dem SOCKS-server genau wie deine Grafik zeigt.
Empfehle ich die Lektüre des RFC.