題 如何使用Power Shell在Windows中打開防火牆端口


我想知道如何使用Power Shell在Windows中打開防火牆端口。任何人都可以寫一個腳本來打開防火牆端口。我看到一個類似的帖子 https://stackoverflow.com/questions/24760821/changing-windows-firewall-rules-with-powershell-open-close-a-specific-port 但無法理解如何做到這一點。

我只想在Windows中打開一個端口:8983,因為當我執行應用程序(堆棧轉儲)時,它說 pysolr.SolrError: Failed to connect to server at 'http://localhost:8983/solr/stackdump/admin/ping', are you sure that URL is correct?.它說:No connection could be made because the target machine actively refused it


4
2017-11-20 13:13


起源




答案:


您可以參考指南 這裡

打開端口80的命令是:

netsh advfirewall firewall add rule name="Open Port 80" dir=in action=allow protocol=TCP localport=80

您需要指定:

  • 規則的名稱
  • 方向
  • 是否允許連接
  • 使用的協議
  • 端口號

您可以在Powershell級別使用此命令。

如果你絕對必須使用Powershell,你可以使用類似下面的腳本(對於端口80):

#==============================================================
# Creates a rule to open an incomming port in the firewall.
#==============================================================

#$numberAsString = read-host "type an port number"
#$mynumber = [int]$numberAsString


$port1 = New-Object -ComObject HNetCfg.FWOpenPort

$port1.Port = 80

$port1.Name = 'MyTestPort' # name of Port

$port1.Enabled = $true

$fwMgr = New-Object -ComObject HNetCfg.FwMgr

$profiledomain=$fwMgr.LocalPolicy.GetProfileByType(0)

$profiledomain.GloballyOpenPorts.Add($port1)

取自 這裡


13
2017-11-20 13:17



:謝謝。我嘗試了它並且它工作但幸運的是它說:The requested operation requires elevation (Run as administrator)我正在大學圖書館使用這台電腦,所以可能是問題所在。 - justin
好吧,我想你可能是對的。已知大學圖書館計算機或幾乎任何公開可用的計算機都具有限制,這將禁止對計算機配置進行任何更改。我很確定上面的腳本可以在普通計算機上運行。 - mnmnc
:我還想問一下我們可以在linux上執行腳本嗎?因為我正在運行應用程序XOWA它說firefox中的`連接被拒絕'而使用firefox的XOWA插件。這些類型的錯誤發生是因為一個端口沒有打開? - justin
拒絕連接看起來更像是來自目標服務器或您與目標服務器之間的網絡設備的響應。 Linux是一個不同的操作系統。幾乎完全不同。您無法在Linux中執行上述註釋。 Linux命令會做什麼,但這是完全不同的問題。 - mnmnc
:你有沒有聽說過XOWA?它真的是一個應用程序可以讓你讓維基百科脫機。在Firefox中的XOWA插件幫助我們從firefox運行應用程序。但是你在這裡說的“目標服務器”仍然是我的計算機本身。所以我認為問題在於端口因為響應應該通過一個端口,不是嗎? - justin