查询公网出口 IP
确认 NAT 之后的公网出口 IP,是填白名单、对比不同网络出口差异时的基本操作。常用办法有两个:用 Invoke-RestMethod 调用返回自身 IP 的接口,或者用 Resolve-DnsName 查询 OpenDNS 的诊断域名,后者不依赖 HTTP,在限制更严的网络里往往照样可用。要注意出口地址常常是多人共享的。
基本信息
| 适用平台 | Windows PowerShell,其他平台思路相同 |
|---|---|
| HTTP 方式 | Invoke-RestMethod 'https://api.ipify.org' |
| DNS 方式 | Resolve-DnsName myip.opendns.com -Server 208.67.222.222 -Type A |
| 对比场景 | 办公网、4G、VPN 的出口各不相同 |
| 注意 | 出口通常是共享 NAT 地址 |
典型使用场景
- 把出口 IP 填进合作方或云平台的白名单
- 对比有线与无线、办公网与家庭网络的出口差异
- 验证 VPN 或代理是否真的改变了出口地址
- 排查「同一条命令在同事机器上通、在我这里不通」的路径差异
- 确认多出口环境下本次流量实际走了哪条链路
- 临时做演示或联调时把出口地址报给对接方放行
常用示例
常用示例
Invoke-RestMethod 'https://api.ipify.org' # 最简单:直接返回出口 IPv4
Resolve-DnsName myip.opendns.com -Server 208.67.222.222 -Type A # 不依赖 HTTP
(Invoke-WebRequest 'https://ifconfig.me/ip').Content
# 查看 IPv6 方向的出口:
Resolve-DnsName myip.opendns.com -Server 2620:0:ccc::2 -Type AAAA
# 网络受限时先确认能否解析外部域名:Resolve-DnsName api.ipify.org查询方式对照
| 方式 | 命令 | 适用场景 |
|---|---|---|
| HTTP 接口 | Invoke-RestMethod | 网络通畅、允许出站 HTTP |
| DNS 查询 | Resolve-DnsName | HTTP 受限但仍可做域名解析 |
| 网页接口 | Invoke-WebRequest | 需要看更多出口信息 |
| AAAA 查询 | Type AAAA | 确认 IPv6 出口地址 |
受限内网里访问外部 HTTP 接口可能失败甚至超时,DNS 方式通常更稳,因为域名解析往往在防火墙上被单独放行;如果连解析都不通,说明出站策略限制很严,需要找网络管理员放行。把查询结果与查询时间一起记下来,白名单变更时更容易对上时间线。
出口地址经常是运营商或企业出口的共享 NAT 地址,把它加进白名单并不等于安全隔离,仍需配合身份认证与访问控制。