Configuring FusionHub on Microsoft Azure

FusionHub is the virtual SpeedFusion appliance from Peplink which allows you to establish SpeedFusion connections between cloud servers and physical Peplink devices, among those supported is Microsoft Azure.

Configuration (InControl 2):

1) From your InControl 2 Organization level -
  • Organization > Settings > Warranty & License


On the “Warranty Status” screen, click the Create Evaluation License button-


To add FusionHub onto your organization, navigate to Organization>Settings>Add Devices -


FusionHub Download:

Download FusionHub from the following link:


Configuration steps (MS Azure):

1. Create an Azure storage account to save the FusionHub .vhd image that you downloaded to your local computer.

Login to your Azure Portal:

  • Create a Blob Storage account and applicable Resource Group together.

Click New > Storage Account

Fill in the Name for the Storage Account and Resource Group; set Account Kind to Blob Storage, Replication to LRS and Location to” your own location” and click Create.


Open the Storage Account that you just created by clicking on it and create a container.

Click + Container to get started.


Type the Name of the container in the Name field, choose access type Private and click OK.


2. Create a Virtual Network that your FusionHub will use to connect to existing and new Virtual Machines in your Azure Portal

Click +New > Networking > Virtual Network and fill in the fields required.

Click Create


3. Upload the VHD file from your local computer to the Azure Portal

To upload the FusionHub.vhd file you need to make a note of the Source and Destination path.
NOTE: You’ll have to manually add “\fusionhub.vhd” to the end of the file path for both the Source and Destination when entering.


In this example the source path is: “C:\Users/localadmin/Desktop/FHAzure/fusionhub.vhd"

Your Destination path is the location in Microsoft Azure.

  • These details can be copied from the properties of the Azure Storage Container.


Install Azure Powershell

Azure PowerShell is a set of modules that provide cmdlets to manage Azure with Windows PowerShell. You’ll need this to upload the .VHD file to your Azure Portal and create the Virtual Machine.

Download and install the Micrososft Azure Powershell using the WEBPI here:


Start Windows Powershell with administrator privileges.

When Powershell is open, log on to Azure within Powershell by typing the following

  • Login-AzureRmAccount


Enter your Microsoft Azure login details.

To make the commands a bit easier, we’ll define macros for both the Source and Destination information. This allows you to type “$destinationVHD” or “$destinationVHD” in any code when you are referring to their file paths.

Define the macros as follows:

$SourceVHD = “C:\temp\fusionhub\FusionHub\VHD\fusionhub.vhd”

  • where you downloaded the VHD file on your local PC

$destinationVHD = “ /fusionhub.vhd”

  • where your Azure Storage Container is located


The following command starts copying the file to your Microsoft Azure portal (use your own resource
Group Name):

Add-AzureRmVhd -ResourceGroupName %yourresourcegroupname% -LocalFilePath $SourceVHD -Destination $destinationVHD


4. Create a VM from the FusionHub VHD

In this example, we create the FusionHub VM using a script, you only have to add a few parameters and our FusionHub VM should be up and running. You can find most of the parameters in the Microsoft Azure Portal.

location: defined in MS Azure (Storage Account)
vmName: defined in MS Azure
osType: Linux
osDiskVhdUri: defined in MS Azure (Storage Container file path)
vmSize: if unknown, use “Standard_A0
existingVirtualNetworkName: defined in MS Azure (Virtual Network)
existingVirtualNetworkResourceGroup: defined in MS Azure (Storage Account)
subnetName: default (manually entered)
dnsNameForPublicIP: same as vmName


Copy and paste (right-click!) the following code into Azure Powershell after you have replaced the ResourceGroupname for your ResourceGroupname

New-AzureRmResourceGroupDeployment -Name FHDeployment -ResourceGroupName peptutrg -TemplateUri

When the script is successful you’ll see this screen:


You will see the FusionHub VM in your resources in the Microsoft Azure Portal and are able to access the FusionHub UI via the Public IP address (found in the Azure portal).



Getting this error when attempting to deploy.

New-AzureRmResourceGroupDeployment : 5:07:28 PM - Error: Code=InvalidTemplateDeployment; Message=The template
deployment ‘FHDeployment’ is not valid according to the validation procedure. The tracking id is
‘f96b4b97-e848-439f-a09d-4adeaaed8d98’. See inner errors for details. Please see for usage
At line:1 char:1

  • New-AzureRmResourceGroupDeployment -Name FHDeployment -ResourceGroupN …
  •   + CategoryInfo          : NotSpecified: (:) [New-AzureRmResourceGroupDeployment], Exception
      + FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureResourceGroupDep


I can’t upload the VHD as page blob and receiving the following error

Create page blob failed. Details: StatusCode = 400, StatusText = Page blob is not supported for this account type…

-Should I use premium storage instead of the standard though you are using standard on your guide?

The VHD file uploading will success if not uploaded as page blobs but I can’t launch a VM with this.

I’ve been able to store and launch a FusionHub instance with the general storage instead of blob storage account kind.

Been working through your very well presented tutorial however stuck at step 3. I believe I am at the point where I am able to upload however it is telling me there is not enough space for the vhd file. Windows Powershell give an error when I try to log in so I have tried using the cloud shell in Azure. when I try to upload it says exceeds 100mb. Microsoft Azure storage explorer says group upload failed. How do I upload a file that is so large? I can successfully upload small files.

Hello I am stuck with adding and setting Container. I cannot seem to find one in my created blobstorage.

My storage account dashboard does not seem to have Container option. Maybe this is not available in the current version of Azure? note I am only using free trial version of Azure.

please assist or update the latest guide.

1 Like

Hi Rocknolds,

Can you check if you have access to the following in Azure?

  1. In the left menu for the storage account, scroll to the Blob service section, then select Blobs .
  2. Select the + Container button.

Thanks Erik.

Managed to work it out using General Purpose Account Kind instead of BlobStorage.
Also the upload of FHB image file can be easily done via web UI as oppose to PS CLI.
Maybe the Guide above can be updated.

Thanks - Reynaldo


To ensure that access to the remote network hosted on the Azure, make sure to change IP forwarding to enabled. Setting is on the Network Card itself(This is via the Azure dashboard):

Go to IP configurations and IP forwarding set to enabled


For anyone who is thinking of following this… DON’T!!

Wasted at least 2 hours trying to make it work but it’s way out of date and overly complicated. Azure has made things much simpler and you can have FusionHub up in literally minutes now.

Here is a much better how-to:

It’s for a different product but the same steps can be followed for FusionHub and they work great.



I have just uploaded 2 posts that update’s the one here using the NEW Azure Az Module and Azure Dashboard GUI.

Deploying FusionHub in Microsoft Azure Using it’s Dashboard (Azure GUI)

Deploying FusionHub in Microsoft Azure Using Local Powershell

Hope you find them useful.



Hi, Thank you for all of these detailed instructions. I’ve followed this step-by-step to create a fusionhub server in azure. The azure server is up and running, license applied. I’ve also used inControl2 to configure the speedfusion vpn.

Currently my status is “starting”. It has been this way for a while. After watching @MartinLangmaid video below, it seems like this should come online quickly.

Setting Up SpeedFusion between a FusionHub On Vultr and a Peplink BR1 4G Router - YouTube

Here’s what I’m seeing…

and on inControl2…

Any idea what I missed?

Azure firewall / security policy to allow tcp 32015 and udp 4500 inbound to fusionhub most likely.

1 Like

Thank you!

You are absolutely correct. I added those 2 inbound policies in azure and the connection is now established.


Ok, now that I have fusion hub running, vpn established, and traffic flowing, I’m trying to figure out how to configure bonding. My goal is to use bonding to improve reliability and improve speed.

Please point me in the right direction. I can’t seem to find the settings in the web clients.

@paulbfelix Lets continue working on that in your other thread here: Remote Desktop Connection - #11 by paulbfelix

1 Like