我有一个带有公共(public) IP 的 NAT 网关,该网关与我拥有应用服务的同一 Vnet 和子网关联。但是,如果我从 kudu 控制台运行 curl 命令,例如 curl ifconfig.io
,它仍然返回应用服务的出站 IP 地址之一,而不是我之前的 NAT 网关公共(public) IP期待。
除非我误解了 NAT 的工作原理,否则我应该会看到从 ifconfig.io 返回的值作为 NAT 网关的公共(public) IP,对吗?
最佳答案
具有公共(public) IP 的 natgateway 仅确保所有出站流量均源自该 IP。它不能确保您的所有计算都发生在该 1 个 IP 上。因此,在您的情况下,“ifconfig.io”仅检查计算实例的 IP,这实际上是应用程序服务本身。但是,如果您尝试从应用服务内调用外部 Web API,该 Web API 将看到源自您的单个公共(public) IP 的所有请求。
测试此问题的一个简单方法是尝试在存储帐户启用了日志记录的情况下获取存储 blob。在日志分析中,您将看到源自您的公共(public) IP 的请求。如果您有某种公共(public) IP 白名单要求,这是确保您的流量来自静态 IP 的好方法。
关于Azure 应用服务出站请求不通过 Vnet 集成 NAT 网关路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76240103/