Windows 10 - NAT - Penerusan porta & penyamaran IP

13

Saya mencari cara untuk mendapatkan fungsionalitas iptables di windows 10. Saya mengaktifkan IP routing dan saya perlu meneruskan data tcp ke host lain (port 8080) dan kemudian meneruskan tanggapannya sambil menyamar IP. Di linux saya bisa melakukan ini menggunakan yang berikut (Di mana $ 1 = <IP internal>, $ 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

Apakah ada cara untuk mencapai fungsi serupa di Windows 10?

Orestis P.
sumber
Mungkin terlalu pendek untuk jawaban dan saya tidak tahu apakah ini masih berlaku untuk windows 10. Untuk penerusan porta periksa jawaban ini . Masquerading di windows disebut Internet Connection Sharing (ICS) , periksa jawaban ini .
rda
Halo, terima kasih atas masukan Anda. Saya mencoba menggunakan netsh tetapi sepertinya tidak berhasil (mungkin karena saya perlu listenaddress menjadi wildcard *). Untuk ICS, saya tidak yakin bagaimana cara kerjanya (Apakah saya memerlukan adaptor kedua? Jika saya menjembatani mereka, saya tidak dapat menggunakan ICS)
Orestis P.
Mungkin Anda bisa menggunakan netcat di PC Anda. Ini akan mendengarkan pada satu port dan mengirim ke port lain. IP akan menjadi IP mesin Anda di tengah.
TJJ
2
@OrestisP. lihat netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080saya akan mencoba menerjemahkan iptables Anda ke netsh jika saya punya waktu. ganti 127.0.0.1 dengan alamat pilihan Anda
Zalmy

Jawaban:

16

Windows netshdapat mengatur proxy untuk memungkinkan administrator untuk mem-proxy lalu lintas ipv6 melalui ipv4. Netsh juga memiliki opsi untuk mengkonfigurasi proxy untuk ipv4 ke ipv4.

Untuk pengaturan Anda gunakan netsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080mengganti 127.0.0.1dengan alamat yang ingin Anda proxy.

inilah sedikit kerusakan pada perintah.

netsh interface portproxymemilih antarmuka yang menangani terowongan. add v4tov4untuk membuat terowongan ipv4 ke ipv4. listenport=80untuk port yang Anda inginkan agar klien terhubung. connectaddress=127.0.0.1adalah alamat jarak jauh yang akan didekati klien. connectport=8080adalah port jarak jauh.

Anda juga dapat menggunakan listenaddress=jika Anda hanya ingin proxy tersedia pada satu antarmuka.

Untuk info lebih lanjut https://technet.microsoft.com/en-us/library/cc731068(v=ws.10).aspx

Zalmy
sumber
1
Perhatikan bahwa ini sayangnya hanya berfungsi untuk TCP jadi jika Anda ingin meneruskan beberapa lalu lintas UDP, Anda kurang beruntung.
user276648
1
Bekerja untuk saya menggunakan Windows 10 ke port-forward ssh (port server 22) pada mesin yang menjalankan VPN. Mesin (tanpa koneksi VPN) di jaringan rumah saya dapat terhubung ke mesin lain di dalam VPN menggunakan Listenport.
Frank M
1

Setidaknya untuk tujuan pengujian, saya dapat menggunakan utilitas berikut untuk meneruskan TCP dan UDP

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

Ini untuk XP, tetapi berfungsi pada Win10 juga.

pengguna276648
sumber
Windows 10 memberi tahu saya: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: periksa readmefile. Saya melihat PassPort.exe -Installuntuk menginstal layanan.
user276648