為自己的程序添加防火牆規則


如果程序在開啟了防火牆的計算機上運行,WINDOWS會彈出安全警報:防火牆阻止程序的某些聯網功能

 

,這無疑會降低最終用戶的使用體驗,那么,我們如何把程序添加到防火牆允許的程序列表中呢?

答案是:使用CMD命令!

 

命令:

      netsh advfirewall firewall add rule

 

用法:

      add rule name=<string> dir=in|out action=allow|block|bypass

      [program=<program path>]

      [service=<service short name>|any]

      [description=<string>]

      [enable=yes|no (default=yes)]

      [profile=public|private|domain|any[,...]]

      [localip=any|<IPv4 address>|<IPv6 address>|<subnet>|<range>|<list>]

      [remoteip=any|localsubnet|dns|dhcp|wins|defaultgateway|<IPv4 address>|<IPv6

 

address>|<subnet>|<range>|<list>]

      [localport=0-65535|<port range>[,...]|RPC|RPC-EPMap|IPHTTPS|any (default=any)]

      [remoteport=0-65535|<port range>[,...]|any (default=any)]

      [protocol=0-255|icmpv4|icmpv6|icmpv4:type,code|icmpv6:type,code|tcp|udp|any

 

(default=any)]

      [interfacetype=wireless|lan|ras|any]

      [rmtcomputergrp=<SDDL string>]

      [rmtusrgrp=<SDDL string>]

      [edge=yes|deferapp|deferuser|no (default=no)]

      [security=authenticate|authenc|authdynenc|authnoencap|notrequired

 

(default=notrequired)]

 

備注:

 

      - 將新的入站或出站規則添加到防火牆策略。

      - 規則名稱應該是唯一的,且不能為 "all"。

      - 如果已指定遠程計算機或用戶組,則 security 必須為authenticate、authenc、

 

authdynenc 或 authnoencap。

      - 為 authdynenc 設置安全性可允許系統動態協商為匹配給定 Windows 防火牆規則的通信使

 

用加密。

        根據現有連接安全規則屬性協商加密。

        選擇此選項后,只要入站 IPSec 連接已設置安全保護,但未使用 IPSec 進行加密,計算機

 

就能夠接收該入站連接的第一個 TCP 或 UDP 包。

        一旦處理了第一個數據包,服務器將重新協商連接並對其進行升級,以便所有后續通信都完

 

全加密。

      - 如果 action=bypass,則 dir=in 時必須指定遠程計算機組。

      - 如果 service=any,則規則僅應用到服務。

      - ICMP 類型或代碼可以為 "any"。

      - Edge 只能為入站規則指定。

      - AuthEnc 和 authnoencap 不能同時使用。

      - Authdynenc 僅當 dir=in 時有效。

      - 設置 authnoencap 后,security=authenticate 選項就變成可選參數。

 

CMD示例:

 

      為不具有封裝的 messenger.exe 添加入站規則:

      netsh advfirewall firewall add rule name="allow messenger" dir=in program="c:

 

\programfiles\messenger\msmsgs.exe" security=authnoencap action=allow

 

      為端口 80 添加出站規則:

      netsh advfirewall firewall add rule name="allow80" protocol=TCP dir=out

 

localport=80 action=block

 

      為 TCP 端口 80 通信添加需要安全和加密的入站規則:

      netsh advfirewall firewall add rule name="Require Encryption for Inbound

 

TCP/80" protocol=TCP dir=in localport=80 security=authdynenc action=allow

 

      為 messenger.exe 添加需要安全的入站規則:

      netsh advfirewall firewall add rule name="allow messenger" dir=in program="c:

 

\program files\messenger\msmsgs.exe" security=authenticate action=allow

 

      為 SDDL 字符串標識的組 acmedomain\scanners 添加經過身份驗證的防火牆跳過規則:

     netsh advfirewall firewall add rule name="allow scanners" dir=in

 

rmtcomputergrp=<SDDL string> action=bypass security=authenticate

 

      為 udp- 的本地端口 5000-5010 添加出站允許規則

      Add rule name="Allow port range" dir=out protocol=udp localport=5000-5010

 

action=allow

 

===============================================================

netsh advfirewall firewall add rule name="大旗軟件自動升級" dir=in action=allow program="D:\ABC\Test.exe" service="大旗軟件" description="大旗軟件FTP自動升級使用" protocol=TCP 

注意:千萬別加 service這一項,加了之后,只針對於指定的這一項服務生效,其它的無效

 

--刪除

netsh advfirewall firewall delete rule name="大旗軟件自動升級" protocol=TCP


免責聲明!

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



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