PCVR Streaming: How to troubleshoot connectivity (e.g. "PC not found")

When setting up wireless PCVR streaming (e.g. Air Link, ALVR, Virtual Desktop, Vive Business Streaming) on a new computer or with a new network connection, you might encounter the issue where you launch the client on your HMD, and your target PC doesn’t show up in the list of available devices.

Lots of things could be going wrong. The two devices could be on different networks; VPN could be on; your PC could have some crazy firewall rules due to enterprise provisioning. Not knowing whether you need to dig deep into the Windows firewall rules can be a huge timesink.

This is what I do to quickly suss out what’s wrong and figure out whether the issue is simple or complicated, specifically for local streaming (as opposed to remote/cloud).

  1. Is the PC’s IP address visible/pingable from the HMD?
    • adb shell ping [IPV4 address of target PC]
      If the ping succeeds, that means your PC is visible on the same network as the HMD. If the ping times out, it is not visible on the same network as the HMD.
  2. Is the HMD’s IP address pingable from the PC?
    • to get the HMD’s IPV4 address: adb shell ip route.
    • [On the target PC, in a command prompt/powershell]: ping [IPV4 address of HMD]
      If the ping succeeds, your HMD is connected to the same network as the PC and is visible by the PC.

Now, there are a couple possibilities:

Possibility A: Step 1’s ping failed, but Step 2’s ping succeeded

That usually means the PC isn’t discoverable on the network. Here’s what to check, in the recommended order:

  • In Windows, make sure the network profile is set to “Private” and not “Public”.
    • Note that this setting is per-adapter (e.g. ethernet vs wi-fi), so make sure you set the right one.
  • Does the PC have multiple network connections (e.g. wired/wireless, VPN enabled)?
    • This is sometimes an issue, as it’s the streaming software’s responsibility to select the correct one. and it may not do so. How to check
  • Your PC is still connected to the network, with the same IP address you tried to ping?
    • To simplify, either disconnect the other connections or, if you can’t do that (say, if you’re using Air Bridge or bridging ethernet to an adapter) make sure they are set to the same network. Complete the above steps for all remaining connections.
  • Check firewall rules. Now you have permission to dig deep into firewall rules. That said, if you own the PC and can’t recall setting up a firewall, you might want to question this step a little. In that case, you should be able to check by disabling Microsoft Defender Firewall.

Possibility B: Step 1’s ping succeeded, but Step 2’s ping failed

That means the most obvious thing is going right – the PC is visible on the network.

  • If possible, try to ping the HMD’s IP address again on a different device connected to the same network, preferably non-Windows. This should afford more confidence about whether it’s an issue with the target PC or not.
    • That said, this step is only informative if it confirms that the device actually is pingable on another PC – if the HMD genuinely isn’t pingable anywhere, but the PC is, then I have no idea what’s wrong. I think the only times I haven’t been able to ping my HMD from my macbook were when I’ve mis-pasted the HMD’s IP or they weren’t on the same network.
  • Does the PC have multiple active network connections? e.g. is VPN active, is it connected to ethernet and WiFi, or are you using a USB network adapter?
    • How to check
    • Either disconnect all but the main connection, or perform Step 2 with all connected IPs using ping -S [Target PC IP Address] [HMD IP Address].
      • Both the streaming software and the subsystem try to identify the correct interface for your traffic but can fail in some circumstances. Right now, we’re just concerned with diagnosing the issue.
  • Before things get complicated, double-check you did all the steps correctly.
  • Check firewall rules, specifically inbound ones. If you have access, try disabling Microsoft Defender Firewall. This can be a bit of a rabbit hole, I’ll try to put some guidance at the end unless I forget.

Possibility C: Neither IP was pingable

ou could have multiple problems. Try the following, and then repeat the ping tests. If you can get at least one of the two sides to ping, refer to the other steps.

  • Are the HMD and PC on the same network? Double-check the network name in the PC/HMD
  • Does the PC have multiple active network connections? e.g. is VPN active, is it connected to ethernet and WiFi, or are you using a USB network adapter?
    • How to check
    • Either disconnect all but the main connection, or perform Step 2 with all connected IPs using ping -S [Target PC IP Address] [HMD IP Address].
      • Both the streaming software and the subsystem try to identify the correct interface for your traffic but can fail in some circumstances. Right now, we’re just concerned with diagnosing the issue.
  • Before things get complicated, double-check you did all the previous steps correctly.
  • Check Windows firewall rules. You are looking for something that limits both outbound and inbound.
    If you have access, try disabling Microsoft Defender Firewall.

Possibility D: Both pings succeeded

Three main possibilities, ordered by likelihood/ability to solve

  • Windows firewall allows your pings, but restricts streaming software’s access to the network.
    • First, check for simple rules: allow the streaming software (e.g. Virtual Desktop, Vive Business Streaming, ALVR, Oculus VR runtime for Air Link) access to private networks (and/or public networks if you think you’ll use one for streaming). How to.
    • Failing that, check for complicated ones. If your PC is provisioned, it may be blocking certain types of traffic. Unfortunately, I’ve never itemized the min set of allowances you need for streaming, I just disable all firewalls.
    • Does the PC have multiple active network connections? e.g. is VPN active, is it connected to ethernet and WiFi, or are you using a USB network adapter?
    • How to check
    • Either disconnect all but the main connection, or perform Step 2 with all connected IPs using ping -S [Target PC IP Address] [HMD IP Address].
      • Both the streaming software and the subsystem try to identify the correct interface for your traffic but can fail in some circumstances. Right now, we’re just concerned with diagnosing the issue.
  • Before things get complicated, double-check you did all the steps correctly.
  • Check firewall rules, specifically inbound ones. If you have access, try disabling Microsoft Defender Firewall. This can be a bit of a rabbit hole, I’ll try to put some guidance at the end unless I forget.

Checking firewalls

Unfortunately, I don’t have a comprehensive guide for this. There’s no one-size-fits-all solution, as some PCs (especially provisioned ones) can have weird fine-grained rules preventing access. That’s why it’s useful to troubleshoot first to narrow down whether firewall rules are the issue.

Here’s a ChatGPT-generated guide:

If you can’t ping both devices

  1. Check Local Firewall Rules on Your PC:
  • If you’re using Windows:
    1. Press Windows + R, type firewall.cpl and press Enter.
    2. Click on “Advanced settings” to open Windows Defender Firewall with Advanced Security.
    3. Under “Outbound Rules”, check for any rules that might block ICMP (ping uses ICMP protocol).
    4. Do the same check under “Inbound Rules” if you’re trying to receive ping responses on your PC.
  • If you’re using a third-party firewall software, consult its documentation or interface to review rules related to ICMP.
  1. Temporarily Disable Local Firewall:
  • On Windows:
    1. Press Windows + R, type firewall.cpl and press Enter.
    2. Click on “Turn Windows Defender Firewall on or off”.
    3. Turn off the firewall for both public and private networks (ensure you turn it back on afterward).
  • If the ping works with the firewall disabled, it’s likely the firewall was blocking it.
  1. Check Firewall Rules on the Target Device:
  • If possible, check the firewall rules on the device you’re trying to ping in a manner similar to the steps above. Remember, both sending and receiving devices have the potential to block ICMP traffic.
  1. Intermediate Network Devices:
  • Devices like routers, switches with ACL (Access Control Lists), or dedicated firewalls in the path between your PC and the target device could also be blocking ICMP traffic. Check their configurations if you have access.
  1. Check for ICMP Redirects:
  • Some network configurations or devices might send ICMP redirects under certain conditions. If these are blocked, it could impact ping traffic.
  1. Use Traceroute or Tracert:
  • Use the traceroute command (or tracert on Windows) to see the path your ICMP packets take to reach the destination. This might give a hint where they’re being dropped.
tracert [Destination IP Address]
  1. Monitoring and Logging:
  • Many firewalls have logging capabilities. If enabled, logs can tell you if packets are being dropped or blocked, and by which rule.
  • On some systems, you can actively watch firewall logs in real-time to observe blocks as they happen.
  1. Check ICMP Settings Explicitly:
  • On Windows, you can ensure ICMP is allowed by setting an explicit rule in the advanced firewall settings to allow inbound and outbound ICMPv4 and ICMPv6 echo requests.
  1. Alternative Tools:
  • Use tools like telnet or nc (netcat) to check connectivity on other ports. If only ICMP is blocked but other protocols are working, it’s a strong indicator of a specific ICMP block.
  1. Verify No IP Conflicts:
  • Ensure that there’s no IP address conflict on the network. While not strictly a firewall issue, IP conflicts can prevent devices from communicating properly.
  1. Isolate the Issue:
  • If possible, connect both devices to a simpler network, e.g., a standalone switch without any other network devices. This can help eliminate external factors.

Remember, always revert any changes made during the troubleshooting process, especially turning the firewall back on, to ensure your devices remain secure.

If pings worked, but streaming traffic is blocked

  1. Identify Required Ports and Protocols:
  • Check the documentation or support site for your streaming app to determine which ports and protocols it uses. Streaming apps might use a combination of TCP and UDP ports.
  1. Check Local Firewall Rules on Your PC:
  • Open the Windows Defender Firewall with Advanced Security (firewall.cpl then “Advanced settings”).
  • Examine both the “Inbound Rules” and “Outbound Rules” for any rules related to your streaming app or the ports it uses.
  • Ensure there’s no rule that might be blocking the required ports for your streaming application.
  1. Temporarily Disable Local Firewall:
  • As a test (though not recommended for extended periods), disable your firewall:
    • Open firewall.cpl, then click on “Turn Windows Defender Firewall on or off”.
    • Turn off the firewall for both public and private networks.
  • Test the streaming app. If it works, the issue is likely with the firewall. Don’t forget to turn the firewall back on and adjust rules accordingly.
  1. Check Firewall Rules on the Target Device:
  • Ensure that the target device’s firewall (if it has one) is not blocking the required ports and protocols.
  1. Intermediate Network Devices:
  • If there are other devices like routers or dedicated firewalls between your PC and the target device, check their configurations. They might have Access Control Lists (ACLs) or firewall rules in place that block specific traffic.
  1. Check Application Settings:
  • Ensure that your streaming app’s configuration matches on both devices (like port numbers, IP addresses, etc.).
  1. Monitoring and Logging:
  • Activate logging on your firewall. Most firewalls allow for detailed logging of allowed and blocked connections.
  • Start your streaming app and review the logs for any blocked connections. This can give clues as to which rules are interfering.
  1. Network Sniffing:
  • Use tools like Wireshark to capture network packets on your PC. This can help you see if the streaming traffic is being sent and whether responses are coming back. This is a more advanced step and requires familiarity with packet analysis.
  1. Alternative Connectivity Test:
  • Use tools like netcat (nc) or telnet to test connectivity on the specific ports that your streaming app uses. This can help verify if those ports are open and listening.
  1. Streaming App Logs:
  • Some streaming apps might generate logs or have a debug mode that can provide insights into connectivity issues.
  1. Update and Compatibility:
  • Ensure that both your streaming app and any associated software or drivers are updated to the latest versions. Compatibility issues between versions can sometimes cause streaming problems.
1 Like

Wow, this is an incredible writeup. Thanks so much!