2

我想了解默认情况下,Azure云服务(Web/Worker角色)的防火墙规则是什么,我很困惑。了解Azure云服务防火墙

根据多个来源(包括此链接http://download.microsoft.com/download/C/A/3/CA3FC5C0-ECE0-4F87-BF4B-D74064A00846/AzureNetworkSecurity_v3_Feb2015.pdf),默认情况下云服务的入站连接被阻止,无论是工作角色还是Web角色。要打开入站连接,我需要为.cscfg中的EndPoints元素指定参数。

但是,我从来没有这样做过,但我的web角色和工作者角色接受inboud连接,甚至UDP连接到工作者角色。

我缺少什么?

更新:我道歉,我在看错文件。由于我无法解释我混合.csdef和.cscfg的原因。现在它看起来像一个愚蠢的问题:)

回答

0

大卫大多数的答案覆盖,具体为什么它的工作原理: https://azure.microsoft.com/nl-nl/documentation/articles/cloud-services-role-enable-remote-desktop/

看看在csdef文件中,有在那里

<Imports> 
    <Import moduleName="<import-module>"/> 
</Imports> 

了该模块的导入部分RDP是“RemoteAccess”,并且会有一个“RemoteAccessForwarder”,所有插件/模块都位于此目录中的Azure SDK中(用您的azure SDK版本替换v2.9)

C:\Program Files\Microsoft SDKs\Azure\.NET SDK\v2.9\bin\plugins 

导入下面的配置此模块的结果被添加到csdef文件在运行时:

<?xml version="1.0" ?> 
<RoleModule 
    xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" 
    namespace="Microsoft.WindowsAzure.Plugins.RemoteAccess"> 
    <Startup priority="-1"> 
    <Task commandLine="RemoteAccessAgent.exe" executionContext="elevated" taskType="background" /> 
    <Task commandLine="RemoteAccessAgent.exe /blockStartup" executionContext="elevated" taskType="simple" /> 
    </Startup> 
    <ConfigurationSettings> 
    <Setting name="Enabled" /> 
    <Setting name="AccountUsername" /> 
    <Setting name="AccountEncryptedPassword" /> 
    <Setting name="AccountExpiration" /> 
    </ConfigurationSettings> 
    <Endpoints> 
    <InternalEndpoint name="Rdp" protocol="tcp" port="3389" /> 
    </Endpoints> 
    <Certificates> 
    <Certificate name="PasswordEncryption" storeLocation="LocalMachine" storeName="My" permissionLevel="elevated" /> 
    </Certificates> 
</RoleModule> 

这将打开3389端口用于RDP连接,所以端点处于.csdef文件,但通过导入。

另外看看“RemoteForwarder”,它充当网关,所以只有1个端口(3389)必须在外部打开,并且只有1个实例会听到这个。 RemoteForwarder然后将RDP连接转发到正确的机器。更多信息: https://blogs.msdn.microsoft.com/avkashchauhan/2011/12/06/how-does-remote-desktop-works-in-windows-azure/

+0

这个答案完全是主题。 –

2

你是对的 - 网络和辅助角色需要定义端点,以允许外部流量通过你的角色实例。

关于您当前可以访问现有Web/Worker实例的事实:默认情况下,为您的Web角色创建端口80的端点,并且如果启用了RDP,那么也启用该端点。

请注意,有一些端口映射会发生:也就是说,您指定了外部端口(可能...端口8000),然后映射到代码正在监听的实际端口(可能...端口80)。

另外请注意,如果您将其中一个端口用于一个角色,则必须针对不同的角色提供不同的端口。给定角色的所有实例都可以使用负载平衡的方式使用相同的端口。但是,如果您在Web角色上使用外部端口8000来设置Web服务器,并且您定义了另一个Web角色(或者可能是一个辅助角色),则不能为该角色使用端口8000。

角色端点在Visual Studio中的云服务项目中公开,以防您不想直接编辑配置文件。