在网络服务器日志中(使用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。
答案 0 :(得分:1)
每个App Service Web App有两个站点,其中1个是您的常规WebApp,第二个是SCM网站(运行Kudu的网站)。每个站点都会执行ping操作,这就是为什么您看到两个站点(〜1名称为SCM)的原因。
所有Azure Web应用程序(以及移动应用程序/服务,WebJob和功能)都在称为沙箱的安全环境中运行。每个应用程序都在其自己的沙箱中运行,从而将其执行与同一台计算机上的其他实例隔离开来,并提供其他程度的安全性和私密性,否则将无法提供。
是的,尝试连接到本地地址(例如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?forum=windowsazurewebsitespreview