Windows 10 - NAT - Portweiterleitung & IP-Maskerade

13

Ich suche nach einer Möglichkeit, die iptables-Funktionalität in Windows 10 zu erhalten. Ich habe das IP-Routing aktiviert und muss TCP-Daten an einen anderen Host (Port 8080) weiterleiten und dann seine Antwort weiterleiten, während ich IP maskiere. Unter Linux konnte ich dies folgendermaßen tun (wobei $ 1 = <interne IP>, $ 2 = 80, $ 3 = 8080, $ 4 = tcp)

iptables -t nat -A PREROUTING -p $4 --match multiport --dports $2 -j DNAT --to-destination $1:$3 
iptables -A FORWARD -p $4 --match multiport --dports $2 -d $1 -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE

Gibt es eine Möglichkeit, ähnliche Funktionen in Windows 10 zu erreichen?

Orestis P.
quelle
Wahrscheinlich zu kurz für eine Antwort und ich weiß nicht, ob dies für Windows 10 noch gültig ist. Für die Portweiterleitung lesen Sie diese Antwort . Das Maskieren in Windows wird als Internet Connection Sharing (ICS) bezeichnet . Lesen Sie diese Antwort .
RDA
Hallo, danke für deine Eingabe. Ich habe versucht, netsh zu verwenden, aber es scheint nicht zu funktionieren (möglicherweise, weil ich eine Listenadresse als Platzhalter * benötige). Für ICS bin ich mir nicht ganz sicher, wie es funktionieren wird (Benötige ich einen zweiten Adapter? Wenn ich sie überbrücke, kann ich ICS nicht verwenden)
Orestis P.
Vielleicht könnten Sie netcat auf Ihrem PC verwenden. Es überwacht einen Port und sendet ihn an einen anderen Port. IP ist die IP Ihres Computers in der Mitte.
TJJ
2
@OrestisP. check out netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080Ich werde versuchen, deine iptables in netsh zu übersetzen, wenn ich Zeit habe. Ersetzen Sie die 127.0.0.1 durch die Adresse Ihrer Wahl
Zalmy

Antworten:

16

Windows netshkann einen Proxy einrichten, damit Administratoren den IPv6-Verkehr über IPv4 übertragen können. Netsh hat auch die Option, einen Proxy für IPv4 zu IPv4 zu konfigurieren.

netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080Ersetzen 127.0.0.1Sie für Ihr Setup das durch die Adresse, an die Sie einen Proxy senden möchten.

Hier ist eine kleine Aufschlüsselung des Befehls.

netsh interface portproxyWählt die Schnittstelle aus, die die Tunnel verwaltet. add v4tov4um einen IPv4-zu-IPv4-Tunnel zu erstellen. listenport=80für den Port, den die Clients verbinden sollen. connectaddress=127.0.0.1ist die Remote-Adresse, an die die Clients weitergeleitet werden. connectport=8080ist der Remote-Port.

Sie können auch verwenden, listenaddress=wenn der Proxy nur auf einer Schnittstelle verfügbar sein soll.

Weitere Informationen finden Sie unter https://technet.microsoft.com/en-us/library/cc731068(v=ws.10).aspx

Zalmy
quelle
1
HINWEIS: Dies funktioniert leider nur für TCP. Wenn Sie also UDP-Datenverkehr weiterleiten möchten, haben Sie kein Glück.
user276648
1
Funktioniert für mich unter Windows 10, um ssh (Server-Port 22) auf einem Computer mit einem VPN weiterzuleiten. Ein Computer (ohne VPN-Verbindung) in meinem Heimnetzwerk kann über den Listenport eine Verbindung zu einem anderen Computer im VPN herstellen.
Frank M
1

Zumindest zu Testzwecken konnte ich das folgende Dienstprogramm verwenden, um sowohl TCP als auch UDP weiterzuleiten

https://sourceforge.net/projects/pjs-passport/

Es ist für XP, aber es funktioniert auch unter Win10.

user276648
quelle
Windows 10 sagt mir:Cannot start service from the command line or a debugger. A Windows Service must first be installed (using installutil.exe) and then started with the ServerExplorer, Windows Services Administrative tool or the NET START command.
Peter Turner
1
@PeterTurner: Überprüfen Sie die readmeDatei. Ich sehe PassPort.exe -Install, um den Dienst zu installieren.
user276648