Windows 10 - NAT - การส่งต่อพอร์ต & การปลอมแปลง IP


13

ฉันกำลังมองหาวิธีรับฟังก์ชั่น iptables ใน windows 10 ฉันเปิดใช้งานการกำหนดเส้นทาง IP และฉันต้องการส่งต่อข้อมูล tcp ไปยังโฮสต์อื่น (พอร์ต 8080) แล้วส่งต่อการตอบสนองของเขาในขณะที่หลอกลวง IP ใน linux ฉันสามารถทำได้โดยใช้สิ่งต่อไปนี้ (โดยที่ $ 1 = <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

มีวิธีใดบ้างในการใช้งานฟังก์ชั่นที่คล้ายกันใน Windows 10


อาจสั้นเกินไปสำหรับคำตอบและฉันไม่รู้ว่ายังคงใช้ได้กับ windows 10 สำหรับการส่งต่อพอร์ตลองดูคำตอบนี้ การปลอมตัวในหน้าต่างเรียกว่าInternet Connection Sharing (ICS)ลองดูคำตอบนี้
rda

สวัสดีขอขอบคุณสำหรับข้อมูลของคุณ ฉันลองใช้ netsh แต่ดูเหมือนว่าจะไม่ทำงาน (อาจเป็นเพราะฉันต้องการให้ฟังเพิ่มเติมว่าเป็น wildcard *) สำหรับ ICS ฉันไม่แน่ใจว่ามันจะทำงานได้อย่างไร (ฉันจะต้องใช้อะแดปเตอร์ตัวที่สองหรือไม่ถ้าฉันเชื่อมพวกมันฉันไม่สามารถใช้ ICS ได้)
Orestis P.

บางทีคุณสามารถใช้ netcat บนพีซีของคุณได้ มันจะฟังบนพอร์ตหนึ่งและส่งไปยังพอร์ตอื่น IP จะเป็น IP ของเครื่องที่อยู่ตรงกลาง
TJJ

2
@OrestisP ลองดูnetsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080ฉันจะลองแปล iptables ของคุณเป็น netsh ถ้าฉันมีเวลา แทนที่ 127.0.0.1 ด้วยที่อยู่ที่คุณเลือก
Zalmy

คำตอบ:


16

Windows netshสามารถตั้งค่าพร็อกซีเพื่อให้ผู้ดูแลระบบสามารถรับส่งข้อมูลพร็อกซี ipv6 ผ่าน ipv4 Netsh ยังมีตัวเลือกในการกำหนดค่าพร็อกซีสำหรับ ipv4 เป็น ipv4

สำหรับการตั้งค่าของคุณให้ใช้การnetsh interface portproxy add v4tov4 listenport=80 connectaddress=127.0.0.1 connectport=8080แทนที่127.0.0.1ด้วยที่อยู่ที่คุณต้องการพร็อกซี่

นี่คือรายละเอียดเล็กน้อยในคำสั่ง

netsh interface portproxyเลือกอินเตอร์เฟสที่จัดการอุโมงค์ add v4tov4เพื่อสร้าง ipv4 to ipv4 tunnel listenport=80สำหรับพอร์ตที่คุณต้องการให้ลูกค้าเชื่อมต่อ connectaddress=127.0.0.1เป็นที่อยู่ระยะไกลที่ลูกค้าจะได้รับพรอกซี connectport=8080เป็นพอร์ตระยะไกล

คุณสามารถใช้listenaddress=หากคุณต้องการให้พร็อกซีมีให้ในอินเทอร์เฟซเดียว

สำหรับข้อมูลเพิ่มเติมhttps://technet.microsoft.com/en-us/library/cc731068(v=ws.10).aspx


1
โปรดทราบว่านี่เป็นเพียงการทำงานสำหรับ TCP ดังนั้นหากคุณต้องการที่จะส่งต่อการรับส่งข้อมูล UDP บางส่วนคุณจะโชคดี
276648

1
เหมาะสำหรับฉันที่ใช้ Windows 10 เพื่อส่งต่อพอร์ต ssh (เซิร์ฟเวอร์พอร์ต 22) บนเครื่องที่ใช้ VPN เครื่อง (ไม่มีการเชื่อมต่อ VPN) บนเครือข่ายในบ้านของฉันสามารถเชื่อมต่อกับเครื่องอื่นภายใน VPN โดยใช้ Listenport
Frank M

1

อย่างน้อยสำหรับวัตถุประสงค์ในการทดสอบฉันสามารถใช้ยูทิลิตีต่อไปนี้เพื่อส่งต่อทั้ง TCP และ UDP

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

มันใช้กับ XP แต่ใช้กับ Win10 ด้วย


Windows 10 บอกฉัน: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: ตรวจสอบreadmeไฟล์ ฉันเห็นPassPort.exe -Installการติดตั้งบริการ
276648
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.