Azure File Sync proxy and firewall settings

Azure File Sync connects your on-premises servers to Azure Files, enabling multi-site synchronization and cloud tiering features. As such, an on-premises server must be connected to the internet. An IT admin needs to decide the best path for the server to reach into Azure cloud services.

This article provides insight into specific requirements and options available to successfully and securely connect your server to Azure File Sync.

We recommend reading Azure File Sync networking considerations prior to reading this how to guide.


Azure File Sync acts as an orchestration service between your Windows Server, your Azure file share, and several other Azure services to sync data as described in your sync group. For Azure File Sync to work correctly, you'll need to configure your servers to communicate with the following Azure services:

  • Azure Storage
  • Azure File Sync
  • Azure Resource Manager
  • Authentication services


The Azure File Sync agent on Windows Server initiates all requests to cloud services which results in only having to consider outbound traffic from a firewall perspective. No Azure service initiates a connection to the Azure File Sync agent.


Azure File Sync moves file data and metadata exclusively over HTTPS and requires port 443 to be open outbound. As a result, all traffic is encrypted.

Networks and special connections to Azure

The Azure File Sync agent has no requirements regarding special channels like ExpressRoute, etc. to Azure.

Azure File Sync will work through any means available that allow reach into Azure, automatically adapting to network characteristics like bandwidth and latency, as well as offering admin control for fine-tuning.


Azure File Sync supports app-specific and machine-wide proxy settings.

App-specific proxy settings allow configuration of a proxy specifically for Azure File Sync traffic. App-specific proxy settings are supported on agent version or newer and can be configured during the agent installation or by using the Set-StorageSyncProxyConfiguration PowerShell cmdlet.

PowerShell commands to configure app-specific proxy settings:

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Set-StorageSyncProxyConfiguration -Address <url> -Port <port number> -ProxyCredential <credentials>

For example, if your proxy server requires authentication with a user name and password, run the following PowerShell commands:

# IP address or name of the proxy server.

# The port to use for the connection to the proxy.

# The user name for a proxy.

# Please type or paste a string with a password for the proxy.
$SecurePassword = Read-Host -AsSecureString

$Creds = New-Object System.Management.Automation.PSCredential ($UserName, $SecurePassword)

# Please verify that you have entered the password correctly.
Write-Host $Creds.GetNetworkCredential().Password

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"

Set-StorageSyncProxyConfiguration -Address $Address -Port $Port -ProxyCredential $Creds

Machine-wide proxy settings are transparent to the Azure File Sync agent as the entire traffic of the server is routed through the proxy.

To configure machine-wide proxy settings, follow the steps below:

  1. Configure proxy settings for .NET applications

    • Edit these two files:

    • Add the <> section in the machine.config files (below the <system.serviceModel> section). Change 127.0.01:8888 to the IP address and port for the proxy server.

         <defaultProxy enabled="true" useDefaultCredentials="true">
           <proxy autoDetect="false" bypassonlocal="false" proxyaddress="" usesystemdefault="false" />
  2. Set the WinHTTP proxy settings


    There are several methods (WPAD, PAC file, netsh, etc.) to configure a Windows Server to use a proxy server. The steps below cover how to configure the proxy settings using netsh but any method listed in the Configure proxy server settings in Windows documentation is supported.

    • Run the following command from an elevated command prompt or PowerShell to see the existing proxy setting:

      netsh winhttp show proxy

    • Run the following command from an elevated command prompt or PowerShell to set the proxy setting (change 127.0.01:8888 to the IP address and port for the proxy server):

      netsh winhttp set proxy

  3. Restart the Storage Sync Agent service by running the following command from an elevated command prompt or PowerShell:

    net stop filesyncsvc

    Note: The Storage Sync Agent (filesyncsvc) service will auto-start once stopped.


As mentioned in a previous section, port 443 needs to be open outbound. Based on policies in your datacenter, branch or region, further restricting traffic over this port to specific domains may be desired or required.

The following table describes the required domains for communication:

Service Public cloud endpoint Azure Government endpoint Usage
Azure Resource Manager Any user call (like PowerShell) goes to/through this URL, including the initial server registration call.
Microsoft Entra ID Azure Resource Manager calls must be made by an authenticated user. To succeed, this URL is used for user authentication.
Microsoft Entra ID As part of deploying Azure File Sync, a service principal in the subscription's Microsoft Entra ID will be created. This URL is used for that. This principal is used for delegating a minimal set of rights to the Azure File Sync service. The user performing the initial setup of Azure File Sync must be an authenticated user with subscription owner privileges.
Microsoft Entra ID
(same as public cloud endpoint URL)
This URL is accessed by the Active Directory authentication library that the Azure File Sync server registration UI uses to log in the administrator.
Azure Storage * * When the server downloads a file, then the server performs that data movement more efficiently when talking directly to the Azure file share in the Storage Account. The server has a SAS key that only allows for targeted file share access.
Azure File Sync *
* After initial server registration, the server receives a regional URL for the Azure File Sync service instance in that region. The server can use the URL to communicate directly and efficiently with the instance handling its sync.
Microsoft PKI
Once the Azure File Sync agent is installed, the PKI URL is used to download intermediate certificates required to communicate with the Azure File Sync service and Azure file share. The OCSP URL is used to check the status of a certificate.
Microsoft Update *
Once the Azure File Sync agent is installed, the Microsoft Update URLs are used to download Azure File Sync agent updates.


When allowing traffic to *, traffic is only possible to the sync service. There are no other Microsoft services using this domain. When allowing traffic to *, traffic to more than just the sync service is possible from the server. There are many more Microsoft services available under subdomains.

If * or * is too broad, you can limit the server's communication by allowing communication to only explicit regional instances of the Azure File Sync service. Which instance(s) to choose depends on the region of the storage sync service you have deployed and registered the server to. That region is called "Primary endpoint URL" in the table below.

For business continuity and disaster recovery (BCDR) reasons you may have created your Azure file shares in a storage account that is configured for geo-redundant storage (GRS). If that is the case, your Azure file shares will fail over to the paired region in the event of a lasting regional outage. Azure File Sync uses the same regional pairings as storage. So if you use GRS storage accounts, you need to enable additional URLs to allow your server to talk to the paired region for Azure File Sync. The table below calls this "Paired region". Additionally, there is a traffic manager profile URL that needs to be enabled as well. This will ensure network traffic can be seamlessly re-routed to the paired region in the event of a failover and is called "Discovery URL" in the table below.

Cloud Region Primary endpoint URL Paired region Discovery URL
Public Australia East
Australia Southeast
Public Australia Southeast
Australia East
Public Brazil South South Central US
Public Canada Central
Canada East
Public Canada East
Canada Central
Public Central India
South India
Public Central US
East US 2
Microsoft Azure operated by 21Vianet China East 2 China North 2
Microsoft Azure operated by 21Vianet China North 2 China East 2
Public East Asia
Southeast Asia
Public East US
West US
Public East US 2
Central US
Public Germany North Germany West Central
Public Germany West Central Germany North
Public Japan East Japan West
Public Japan West Japan East
Public Korea Central Korea South
Public Korea South Korea Central
Public North Central US South Central US
Public North Europe
West Europe
Public South Central US North Central US
Public South India
Central India
Public Southeast Asia
East Asia
Public Switzerland North
Switzerland West
Public Switzerland West
Switzerland North
Public UAE Central UAE North
Public UAE North UAE Central
Public UK South
UK West
Public UK West
UK South
Public West Central US West US 2
Public West Europe
North Europe
Public West US
East US
Public West US 2 West Central US
Government US Gov Arizona US Gov Texas
Government US Gov Texas US Gov Arizona
  • If you use a storage account configured for locally redundant storage (LRS) or zone redundant storage (ZRS), you only need to enable the URL listed under "Primary endpoint URL".

  • If you use a storage account configured for GRS, enable three URLs.

Example: You deploy a storage sync service in "West US" and register your server with it. The URLs to allow the server to communicate to for this case are:

  • (primary endpoint: West US)
  • (paired failover region: East US)
  • (discovery URL of the primary region)

Allow list for Azure File Sync IP addresses

Azure File Sync supports the use of service tags, which represent a group of IP address prefixes for a given Azure service. You can use service tags to create firewall rules that enable communication with the Azure File Sync service. The service tag for Azure File Sync is StorageSyncService.

If you're using Azure File Sync within Azure, you can use name of service tag directly in your network security group to allow traffic. To learn more about how to do this, see Network security groups.

If you're using Azure File Sync on-premises, you can use the service tag API to get specific IP address ranges for your firewall's allow list. There are two methods for getting this information:

Because the service tag discovery API might not be updated as frequently as the JSON documents published to the Microsoft Download Center, we recommend using the JSON document to update your on-premises firewall's allow list. This can be done as follows:

# The specific region to get the IP address ranges for. Replace westus2 with the desired region code 
# from Get-AzLocation.
$region = "westus2"

# The service tag for Azure File Sync. Do not change unless you're adapting this
# script for another service.
$serviceTag = "StorageSyncService"

# Download date is the string matching the JSON document on the Download Center. 
$possibleDownloadDates = 0..7 | `
    ForEach-Object { [System.DateTime]::Now.AddDays($_ * -1).ToString("yyyyMMdd") }

# Verify the provided region
$validRegions = Get-AzLocation | `
    Where-Object { $_.Providers -contains "Microsoft.StorageSync" } | `
    Select-Object -ExpandProperty Location

if ($validRegions -notcontains $region) {
    Write-Error `
            -Message "The specified region $region is not available. Either Azure File Sync is not deployed there or the region does not exist." `
            -ErrorAction Stop

# Get the Azure cloud. This should automatically based on the context of 
# your Az PowerShell login, however if you manually need to populate, you can find
# the correct values using Get-AzEnvironment.
$azureCloud = Get-AzContext | `
    Select-Object -ExpandProperty Environment | `
    Select-Object -ExpandProperty Name

# Build the download URI
$downloadUris = @()
switch($azureCloud) {
    "AzureCloud" { 
        $downloadUris = $possibleDownloadDates | ForEach-Object {  

    "AzureUSGovernment" {
        $downloadUris = $possibleDownloadDates | ForEach-Object { 

    "AzureChinaCloud" {
        $downloadUris = $possibleDownloadDates | ForEach-Object { 

    "AzureGermanCloud" {
        $downloadUris = $possibleDownloadDates | ForEach-Object { 

    default {
        Write-Error -Message "Unrecognized Azure Cloud: $_" -ErrorAction Stop

# Find most recent file
$found = $false 
foreach($downloadUri in $downloadUris) {
    try { $response = Invoke-WebRequest -Uri $downloadUri -UseBasicParsing } catch { }
    if ($response.StatusCode -eq 200) {
        $found = $true

if ($found) {
    # Get the raw JSON 
    $content = [System.Text.Encoding]::UTF8.GetString($response.Content)

    # Parse the JSON
    $serviceTags = ConvertFrom-Json -InputObject $content -Depth 100

    # Get the specific $ipAddressRanges
    $ipAddressRanges = $serviceTags | `
        Select-Object -ExpandProperty values | `
        Where-Object { $ -eq "$serviceTag.$region" } | `
        Select-Object -ExpandProperty properties | `
        Select-Object -ExpandProperty addressPrefixes
} else {
    # If the file cannot be found, that means there hasn't been an update in
    # more than a week. Please verify the download URIs are still accurate
    # by checking
    Write-Verbose -Message "JSON service tag file not found."

You can then use the IP address ranges in $ipAddressRanges to update your firewall. Check your firewall/network appliance's website for information on how to update your firewall.

Test network connectivity to service endpoints

Once a server is registered with the Azure File Sync service, the Test-StorageSyncNetworkConnectivity cmdlet and ServerRegistration.exe can be used to test communications with all endpoints (URLs) specific to this server. This cmdlet can help troubleshoot when incomplete communication prevents the server from fully working with Azure File Sync and it can be used to fine-tune proxy and firewall configurations.

To run the network connectivity test, run the following PowerShell commands:

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"

If the test fails, collect WinHTTP debug traces to troubleshoot: netsh trace start scenario=InternetClient_dbg capture=yes overwrite=yes maxsize=1024

Run the network connectivity test again, and then stop collecting traces: netsh trace stop

Put the generated NetTrace.etl file into a ZIP archive, open a support case, and share the file with support.

Summary and risk limitation

The lists earlier in this document contain the URLs Azure File Sync currently communicates with. Firewalls must be able to allow traffic outbound to these domains. Microsoft strives to keep this list updated.

Setting up domain restricting firewall rules can be a measure to improve security. If these firewall configurations are used, keep in mind that URLs will be added and might even change over time. Check this article periodically.

Next steps