TECHRUNBOOK · PRACTICAL GUIDE

Azure VM-to-VM Connectivity Troubleshooting Runbook

Troubleshoot connectivity between Azure virtual machines by checking NICs, NSGs, routes, guest firewalls and listening services.

Practical RunbookTechnical Troubleshooting
Practical Runbook10 StepsIssues → Solutions → Recommendations
Have a question about this runbook?Post your issue to the TechRunbook Community and get help from other IT professionals.
Ask the Community →
!Issue

Troubleshoot connectivity between Azure virtual machines by checking NICs, NSGs, routes, guest firewalls and listening services.

Solution

Start with Test the destination port and work through the six diagnostic checks in order.

Recommendations

Record results before changing configuration and validate the original symptom after each controlled change.

TechRunbook approach: Test one dependency at a time, record the result and only then change the configuration.

Quick checks

Start with the basic checks in this runbook before moving to deeper troubleshooting.

  • Confirm the affected service or component is available.
  • Check recent configuration or connectivity changes.
  • Run the relevant commands and compare the result with the expected state.
01

Test the destination port

Use a TCP test to confirm whether the affected destination port is reachable instead of relying only on ICMP.

02

Check NIC configuration

Verify the affected NIC, private IP, subnet and effective network configuration.

03

Check NSGs

Review subnet and NIC-level NSGs for conflicting or missing rules.

04

Check effective routes

Inspect effective routes for unexpected user-defined routes or network virtual appliances.

05

Check the guest firewall

Confirm the Windows or Linux guest firewall allows the required application port.

06

Verify the destination service

Verify the destination application is running and listening on the expected port.

07

Useful commands

Run these checks from an appropriate administrative session and replace example values with your environment.

Port test

Test-NetConnection <destination-vm> -Port <port>

Route table

Get-AzEffectiveRouteTable -NetworkInterfaceName <nic-name> -ResourceGroupName <resource-group>
08

Quick troubleshooting path

Use this sequence to isolate the failing dependency before changing production configuration.

  1. Test the destination port → Use a TCP test to confirm whether the affected destination port is reachable instead of relying only on ICMP.
  2. Check NIC configuration → Verify the affected NIC, private IP, subnet and effective network configuration.
  3. Check NSGs → Review subnet and NIC-level NSGs for conflicting or missing rules.
  4. Check effective routes → Inspect effective routes for unexpected user-defined routes or network virtual appliances.
  5. Check the guest firewall → Confirm the Windows or Linux guest firewall allows the required application port.
  6. Verify the destination service → Verify the destination application is running and listening on the expected port.
09

What good troubleshooting looks like

Good infrastructure troubleshooting is evidence-driven. Capture the original state, test the dependency that can prove or disprove your hypothesis, make the smallest safe change and repeat the original test.

Example workflow
Symptom → hypothesis → direct test → result → controlled change → validation → documentation
10

Frequently asked questions

What should I check first?

Start with the exact symptom and validate the dependency closest to the failure in this Azure runbook.

Should I change production configuration immediately?

No. Capture the current state first, test the suspected dependency and make one controlled change at a time.

How should I document the fix?

Record the symptom, commands used, result, configuration change and validation result so the procedure can be repeated.

+

Related TechRunbook guides

Was this runbook helpful?

↑ Top