windows用netsh實現端口映射


windows用netsh實現端口映射

by:鐵樂與貓

update: 2019-07-15

環境

  • 映射方(進行端口轉發)

    • 系統: windows10(默認已安裝netsh)

    • ip:10.0.10.21 (192.168.33.1)

    • 端口:tcp 8081

  • 被映射方(被轉發)

    • 系統: centos7(vagrant虛擬機)
    • ip:192.168.33.111 (與宿主機網絡連通)
    • 端口:tcp 8081 (web服務)

需求

對centos7的8081端口進行轉發,以便與10.0.10.21同一網絡的其它機器能夠訪問到虛擬機上的web服務。

使用netsh在windows宿主機上做轉發好處是不需要影響到虛擬機的網絡配置。虛擬機不需要設置成連接10網段的方式。比較靈活,在很多場合都能用上。當然如果宿主機是linux的系統就直接做iptables轉發規則了。

這里要注意的是,netsh做完轉發后,windows的防火牆規則也相應要添加開放。

netsh 命令

Windows的netsh是一個命令行腳本實用工具。

使用netsh工具 ,可以查看或更改本地計算機或遠程計算機的網絡配置。

可以手動運行Netsh命令,或創建批處理文件或腳本實現過程的自動化。

netsh提供了腳本功能,讓您在批處理模式下針對指定的計算機,運行一組命令。利用netsh ,可以將配置腳本保存為文本文件,便於存檔或用於配置其他的計算機。

  • 例,上面的需求可以添加一個IPV4到IPV4的端口映射去解決

    netsh interface portproxy add v4tov4 listenaddress=10.0.10.21 listenport=8081 connectaddress=192.168.33.111 connectport=8081
    

    其中:

    • netsh interface portproxy 表示端口映射列表

    • add v4tov4 表示添加的是IPV4到IPV4的端口

    • listenaddress 表示偵聽的ip地址,填的是映射方

    • listenport 偵聽的端口,可以與被映射的端口設置成不一樣

    • connectaddress 被映射方(連接方)的ip地址

    • connectport 被映射方的端口

  • 如果開啟后想刪除的話:

    netsh interface portproxy delete v4tov4 listenaddress=10.0.10.21 listenport=8081
    

    add 換成delete,很簡單。

  • 查看已存在的轉發列表:

    netsh interface portproxy show all
    
    # 例:
    C:\Windows\system32>netsh interface portproxy show all                                                                                                                      偵聽 ipv4:                 連接到 ipv4:                                                                                                                       地址            端口        地址            端口                                --------------- ----------  --------------- ----------                          10.0.10.21    8081          192.168.33.111  8081   
    

    如果需要一直做轉發,重啟機器后仍要生效的話,就做個腳本開機啟動即可。

防火牆開啟

如果宿主的window有開防火牆的話,要相應的添加開放端口規則。

打開【網絡和internet設置】- 【Windows防火牆】- 【高級設置】- 【入站規則】- 【新建規則】

根據提示設置好相關端口即可。

【end】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM