0

在网络服务器日志(使用 az cli)中,我可以看到使用用户代理 AlwaysOn 和 IP 地址 10.0.128.25 获取请求

此 IP 地址能否可靠地用于设置允许 IP 限制?

此 IP 地址未记录在https://docs.microsoft.com/en-us/azure/app-service/app-service-ip-addresses中,这似乎涵盖了发现公共 IP 地址,所以我对使用保持警惕它?

在日志中我还看到 IPv6 ::1 表示本地主机,所以我猜 10.0.128.25 也是本地主机?

2018-08-30 10:48:19 EXAMPLESITE GET / X-ARR-LOG-ID=ExampleLogId 80 - ::1 AlwaysOn ARRAffinity=ExampleArrAffinityId - EXAMPLESITE.azurewebsites.net 200 0 0 2942 695 108
2018-08-30 10:48:54 ~1EXAMPLESITE GET / - 80 - 10.0.128.25 AlwaysOn - - examplesite.azurewebsites.net 200 0 64 0 457 46463

我尝试使用应用服务控制台和 Kudu powershell 控制台来查看它是否是实例的 IP 地址,但我无法发现更多,因为 ipconfig 和 Get-NetIPAddress 似乎在沙箱中工作。

我猜 127.0.0.1 不会工作,即使它是同一台机器,因为 IIS 将它解释为另一个 IP?

到目前为止,在我尝试过的两个应用服务计划中,它是相同的 IP。

4

1 回答 1

2

每个 App Service Web App 有两个站点,一个是您的普通 WebApp,第二个是 SCM 站点(Kudu 运行的地方)。每个都会收到一个 ping,这就是为什么您会看到两个(~1 名称是 SCM)站点。

所有 Azure Web 应用程序(以及移动应用程序/服务、WebJobs 和函数)都在称为沙盒的安全环境中运行。每个应用程序都在自己的沙箱中运行,将其执行与同一台机器上的其他实例隔离开来,并提供额外的安全性和隐私性,否则将无法使用。

是的,连接到本地地址(例如 localhost,127.0.0.1)和机器自己的 IP 的尝试将失败,除非同一沙箱中的另一个进程在目标端口上创建了侦听套接字。被拒绝的连接尝试,例如尝试从 .NET 连接到 127.0.0.1:80 的以下示例将导致以下异常:异常详细信息:System.Net.Sockets.SocketException:尝试访问一种被其访问权限禁止的方式 127.0.0.1:80 应用程序无法连接到私有 IP 地址。实例可以移动,您可以查看这个讨论线程,其中讨论了处理内部 IP 地址:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/182f3673-18fc-4ade-90bf-22111f566f85/need-internal-ip-address-of-nodes-withing-a-web-app?论坛=windowsazure网站预览

于 2018-09-03T17:56:50.060 回答