# 通过代理查询访问 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