It is a little bit tricky what you are trying to do but let's try to find a workaround :
W1 : You may need to set up a VPN between your on-premises network and Azure can create a secure connection. Once the VPN is set up, Azure resources can directly communicate with resources in your on-premises network.
- Deploy an Azure VPN Gateway in the Virtual Network.
- Set up a Site-to-Site (S2S) VPN connection between Azure and your on-premises network.
- Once the VPN is established, Azure Data Factory can communicate with your on-premises SQL Server as though it's part of your local network.
**W2 :**If setting up a VPN is not feasible, you can use a jump server or a bastion host:
- Deploy a Windows VM in your on-premises network.
- Install Self-Hosted IR on this Windows VM.
- Make sure that this Windows VM can communicate with the SQL Server on Linux VM.
- Use this Self-Hosted IR to connect Azure Data Factory to your SQL Server.
W3 : Azure Hybrid Connections can be another way to solve this problem. It's a feature of Azure Relay and doesn't require VPN or opening firewall ports.
- Set up an Azure Hybrid Connection.
- Install the Hybrid Connection Manager on a Windows VM in your on-premises network.
- Use this connection to link Azure Data Factory and the SQL Server.
W4: (I don't recommend this, especially in PROD environments) try to expose your SQL Server to the internet and connect directly from Azure Data Factory. This approach is risky and should only be used temporarily or in testing. Ensure you have strong security measures in place, such as firewall rules, encryption, and authentication.