windows 命令行设置代理服务器及防火墙

# 通过代理查询访问 ip 
Invoke-RestMethod -Uri 'http://api.ipify.org' -Proxy 'http://10.10.2.103:1001'

# 注:不是所有程序都使用 winhttp, winget 似乎使用 winhttp

# 设置代理
netsh winhttp set proxy "192.168.1.90:7890" bypass-list="192.168.1.*, 127.0.0.1, localhost"

# 查看
netsh winhttp show proxy

# 设置规则
New-NetFirewallRule -DisplayName 'dns 规则' -Direction Inbound -Action Allow -Protocol TCP -LocalPort 53, 10000
New-NetFirewallRule -DisplayName 'dns 规则' -Direction Inbound -Action Allow -Protocol UDP -LocalPort 53

# 显示信息
 Get-NetFirewallRule -DisplayName "dns 规则" | Get-NetFirewallPortFilter

# 显示规则的详细信息
function mynetsh {
  param($displayname)

  # in case there's more than one with wildcards
  get-netfirewallrule -displayname $displayname | foreach {
    $rule = $_

    $address = $rule | Get-NetFirewallAddressFilter
    $port = $rule | Get-NetFirewallPortFilter
    $application = $rule | Get-NetFirewallApplicationFilter
    [pscustomobject]@{
      DisplayName = $rule.DisplayName
      Description = $rule.Description  
      Enabled = $rule.Enabled
      Direction = $rule.Direction
      Profile = $rule.Profile
      DisplayGroup = $rule.DisplayGroup
      LocalAddress = $address.LocalAddress
      RemoteAddress = $address.RemoteAddress
      Protocol = $port.Protocol
      LocalPort = $port.LocalPort
      RemotePort = $port.RemotePort
      EdgeTraversalPolicy = $rule.EdgeTraversalPolicy
      Program = $application.Program 
      Action = $rule.Action
    }
  }  # end foreach
} # end function
上一篇
下一篇