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中的雲服務項目中公開,以防您不想直接編輯配置文件。