Windows 10 - NAT - przekierowanie portów i maskowanie IP


13

Szukam sposobu na uzyskanie funkcjonalności iptables w systemie Windows 10. Włączyłem routing IP i muszę przekazać dane TCP do innego hosta (port 8080), a następnie przekazać jego odpowiedź podczas maskowania adresu IP. W Linuksie byłem w stanie to zrobić za pomocą (gdzie 1 $ = <wewnętrzny adres 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

Czy istnieje sposób na osiągnięcie podobnej funkcjonalności w systemie Windows 10?


Prawdopodobnie za krótki na odpowiedź i nie wiem, czy jest to nadal ważne w systemie Windows 10. W przypadku przekierowania portów sprawdź tę odpowiedź . Maskarada w systemie Windows nazywa się Udostępnianiem połączenia internetowego (ICS) , sprawdź tę odpowiedź .
rda

Witam, dziękuję za Twój wkład. Próbowałem użyć netsh, ale wydaje się, że to nie działa (może dlatego, że potrzebuję adresu e-mail, aby był symbolem wieloznacznym *). W przypadku ICS nie jestem do końca pewien, jak to będzie działać (czy będę potrzebować drugiego adaptera? Jeśli je połączę, nie będę mógł korzystać z ICS)
Orestis P.,

Może możesz użyć netcat na komputerze. Będzie nasłuchiwał na jednym porcie i wysyłał do innego portu. IP będzie IP twojego komputera pośrodku.
TJJ

2
@OrestisP. sprawdź, netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080jeśli będę miał czas, spróbuję przetłumaczyć twoje iptables na netsh. zamień 127.0.0.1 na wybrany przez Ciebie adres
Zalmy

Odpowiedzi:


16

System Windows netshmoże skonfigurować serwer proxy, aby umożliwić administratorom proxy ruchu IPv6 przez ipv4. Netsh ma również opcję skonfigurowania proxy dla ipv4 na ipv4.

Do konfiguracji użyj netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080zastępując 127.0.0.1adres adresem, na który chcesz proxy.

oto mały podział polecenia.

netsh interface portproxywybiera interfejs obsługujący tunele. add v4tov4stworzyć tunel od ipv4 do ipv4. listenport=80dla portu, z którym mają się łączyć klienci. connectaddress=127.0.0.1to zdalny adres, do którego klienci będą proxy. connectport=8080jest zdalnym portem.

możesz także użyć, listenaddress=jeśli chcesz, aby serwer proxy był dostępny tylko w jednym interfejsie.

Aby uzyskać więcej informacji https://technet.microsoft.com/en-us/library/cc731068(v=ws.10).aspx


1
UWAGA: to niestety działa tylko w przypadku TCP, więc jeśli chcesz przesłać część ruchu UDP, nie masz szczęścia.
user276648,

1
Działa dla mnie za pomocą systemu Windows 10 do przekierowania portów ssh (port serwera 22) na maszynie z VPN. Maszyna (bez połączenia VPN) w mojej sieci domowej jest w stanie połączyć się z inną maszyną w sieci VPN za pomocą portu nasłuchiwania.
Frank M,

1

Przynajmniej do celów testowych mogłem użyć następującego narzędzia do przekazywania zarówno TCP, jak i UDP

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

To jest dla XP, ale działa również na Win10.


Windows 10 mówi mi: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: sprawdź readmeplik. Widzę PassPort.exe -Installzainstalować usługę.
user276648,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.