2 Punkte von GN⁺ 2024-04-03 | 1 Kommentare | Auf WhatsApp teilen

Wireproxy: Socks5/HTTP-Proxy oder Tunnel als WireGuard-Client

  • wireproxy ist eine Anwendung, die vollständig im User Space läuft, sich mit einem WireGuard-Peer verbindet und dem System einen socks5/http-Proxy oder Tunnel bereitstellt.
  • Nützlich, wenn man bestimmte Websites über einen WireGuard-Peer erreichen muss, aber sich nicht mit dem Einrichten einer neuen Netzwerkschnittstelle herumschlagen möchte.

Warum man das braucht

  • Wenn man WireGuard einfach als Proxy verwenden möchte, um einen Teil des Traffics zu senden.
  • Wenn man keine Root-Rechte haben möchte, um die WireGuard-Konfiguration zu ändern.
  • Der aktuelle Nutzer betreibt wireproxy mit Verbindung zu einem WireGuard-Server in einem anderen Land und konfiguriert den Browser so, dass er es für bestimmte Websites verwendet.
  • wireproxy ist vollständig von Netzwerkschnittstellen entkoppelt und benötigt keine Root-Rechte für die Konfiguration.
  • Nutzer von Amnezia VPN können eine von @juev geforkte Version von wireproxy verwenden.

Funktionen

  • Statisches TCP-Routing für Client und Server
  • SOCKS5/HTTP-Proxy (derzeit wird nur CONNECT unterstützt)

To-do

  • UDP-Unterstützung in SOCKS5
  • Statisches UDP-Routing

Verwendung

./wireproxy -c [config 경로]
  • Bietet Proxy-Funktionen als WireGuard-Client im User Space.
  • -h steht für Hilfe, -c für den Pfad zur Konfigurationsdatei, -s für den stillen Modus, -d für die Ausführung im Hintergrund, -v für die Ausgabe der Version und -n für einen Modus, der nur die Gültigkeit der Konfigurationsdatei prüft.

Build-Anleitung

git clone https://github.com/octeep/wireproxy
cd wireproxy
make

Verwendung mit VPN

  • Wie man wireproxy unter MacOS zusammen mit Firefox-Container-Tabs und Autostart verwendet, findet sich unter dem entsprechenden Link.

Beispiel-Konfigurationsdatei

  • Die Einstellungen für [Interface] und [Peer] haben dieselbe Bedeutung und Syntax wie in der wg-quick-Konfiguration.
  • TCPClientTunnel und TCPServerTunnel sind Tunnel, die TCP-Traffic jeweils vom lokalen Rechner bzw. aus dem WireGuard-Netzwerk zu einem bestimmten Ziel weiterleiten.
  • STDIOTunnel ist ein Tunnel, der die Standardeingabe und -ausgabe des wireproxy-Prozesses über WireGuard mit einem bestimmten TCP-Ziel verbindet.
  • Socks5 und http erzeugen im LAN einen socks5-Proxy und einen http-Proxy und leiten den gesamten Traffic über WireGuard.
  • Wenn bereits eine WireGuard-Konfiguration vorhanden ist, kann sie in die wireproxy-Konfigurationsdatei importiert werden.
  • Mehrere Peers werden unterstützt; AllowedIPs muss angegeben werden, damit wireproxy weiß, an welchen Peer weitergeleitet werden soll.

Meinung von GN⁺

  • wireproxy kann für Nutzer sehr nützlich sein, die einen sicheren Internetzugang über VPN möchten, ohne tiefgehende Kenntnisse der Netzwerkkonfiguration zu haben.
  • Besonders attraktiv ist, dass die Anwendung bestimmten Traffic über WireGuard routen kann, ohne Änderungen an den Netzwerkeinstellungen auf Systemebene zu erfordern.
  • Wenn Nutzer jedoch kein ausreichendes Verständnis von Netzwerksicherheit haben, ist Vorsicht geboten, da Fehlkonfigurationen zu Sicherheitslücken führen können.
  • Bei der Einführung von WireGuard-Technologie sollten lokale rechtliche Einschränkungen und Datenschutzrichtlinien berücksichtigt und geprüft werden, ob die Nutzung von VPN erlaubt ist.
  • Andere Open-Source-Projekte mit ähnlicher Funktionalität sind unter anderem OpenVPN und SoftEther VPN; Nutzer sollten das passende Werkzeug entsprechend ihren Anforderungen auswählen.

1 Kommentare

 
GN⁺ 2024-04-03
Hacker-News-Kommentare
  • Diskussion über ein nützliches kleines Tool

    • Ein Nutzer verwendet dieses Tool, um einen bestimmten Firefox-Tab über den heimischen Router zu proxien, der WireGuard nutzt. Das Tool funktioniert ohne Proxy-Protokolle auf Anwendungsebene oder SSH.
    • Ein anderer Nutzer bevorzugt zur Verwendung mit WireGuard soks. Es nutzt eine bestehende WireGuard-Schnittstelle wieder, und der Nutzer beschreibt dies ausführlich in einem Blogbeitrag.
    • Ein weiteres Tool ist onetun.
    • Ein Nutzer erwähnt pproxy als Tool, das SSH-Tunnel ersetzen kann. pproxy konvertiert verschiedene Tunnel-Protokolle ineinander und bietet Routing-Funktionen. Der Nutzer verwendet es, um SSH SOCKS5 in einen HTTP-Proxy umzuwandeln.
  • Informationen zu verschiedenen Proxy-Clients

    • Mehrere Multi-Protokoll-Proxy-Clients unterstützen diese Funktion. Open-Source-Beispiele sind sing-box, clash-meta und andere Clash-basierte Clients sowie xray.
    • Als Closed-Source-Client gibt es Surge Mac/iOS.
  • Frage zu Server-Implementierungen im User Space

    • Ein Nutzer fragt sich, ob es eine Server-Implementierung gibt, die vollständig im User Space ohne tun/tap-Gerät läuft. Er vermutet, dass dafür eine Art IP-Stack im User Space nötig wäre.
  • Empfehlung für ein Tool für einen bestimmten VPN-Dienst

    • Ein Nutzer berichtet von guten Erfahrungen mit mullvad-proxy für Mullvad VPN. Es bindet das Mullvad-CLI-Tool ein, wodurch sich Server leicht wechseln lassen, und ist von der Host-Maschine isoliert. Außerdem besteht es aus nginx und einigen Skripten, weshalb eine gute SOCKS5-Unterstützung zu erwarten ist.
  • Positive Reaktion auf ein in Go geschriebenes Tool

    • Ein Nutzer dachte, dass sich ein solches Tool leicht in Go schreiben lassen müsste, und stellte fest, dass genau das der Fall ist.
  • Diskussion über persönliche Anwendungsfälle

    • Ein Nutzer überlegt, mit solchen Tools die E-Mail-Verbindungen von Thunderbird über einen Tailscale-Exit-Node zu proxien. So könnten nur die E-Mail-Verbindungen über den Exit-Node laufen, ohne den gesamten Traffic dorthin umzuleiten.
  • Hinweis auf die Funktion von sing-box

    • Es wird darauf hingewiesen, dass sing-box dieselbe Funktion ebenfalls bietet.