Introduction: Xbox One Streaming to Windows 10 Outside Network Without VPN

Since Microsoft enabled Xbox One streaming to PC, everyone praised it and wondered if you can make it work outside your network. The answer is "Of course you can!". There are several ways of doing so, but the most difficulty is turning the console on outside your network. People usually set up a VPN to do so, but here I show you an alternative I've been used since almost this feature was launched.

To do this required a little bit investigation from me, but I've done it and tested it. There's a few steps for you to make it work, but here is what is required if you want it to work (with this tutorial):

- Xbox one

- A computer for streaming.

- An auxiliary computer turned on in the same network as Xbox. In this tutorial this machine MUST have Linux installed. My test machine was a Raspberry PI 2.

From the above requirements, two of them are obvious but one of them is not. Why would you need another computer at home? The problem is Xbox One is turned on when

Step 1: Install Socat in Your Linux PC

The Xbox one console turns on after a particular set of data is broadcasted in your network. In order to do this, we need to install socat. Go to the terminal and type:

sudo apt-get install socat

Step 2: Enable Communication to Your Linux PC From Outside the Network

Although there are several ways of enabling communication from outside your network, since I'm familiar with Apache web server I used it. To install it just use:

sudo apt-get install apache2 -y

What we want to do with Apache is to call via web browser a script we will create in the next steps. To to this we also need PHP installed:

sudo apt-get install php5 libapache2-mod-php5 -y

Step 3: Creating the Script

Once everything is set up, navigate to apache folder:

cd /var/www/html

Then create the script:

sudo nano script.sh

After this, paste on it the following:

#!/bin/bash
# Script

var1="\xdd\x02\x00\x13\x00\x00\x00\x10\x46\x44\x30\x30\x37\x33\x45\x31\x39\x39\x45\x43\x31\x42\x39\x34\x00" var2="\xdd\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02"

echo -ne $var1 | socat - UDP4-DATAGRAM:255.255.255.255:5050,broadcast echo -ne $var2 | socat - UDP4-DATAGRAM:255.255.255.255:5050,broadcast

Step 4: Calling the Script

Now we just need to set up the index.php to call the script. First remove the default index.html:

sudo rm index.html

Then create a new one with: sudo nano index.php
Paste the following:

<?php

for($i = 0; $i <= 3; $i++)

shell_exec('bash script.sh');

echo "PHP reply to check if the script run";

?>

Step 5: Opening the 80 Port on Your Router

The final step needs you to assign a static IP to you Linux PC as well as opening the 80 port on your router. This vary from router to router, so basically you need to go via web browser to your router private IP and forward a port whatever you want (let's call it ZZ) and forward it to the IP you assigned your Linux PC with the port 80.

To call the script simply type your router public IP (let's call it XX.XX.XX.XX) as following: XX.XX.XX.XX:ZZ

Congratulations, your Xbox one now can be turned on remotely. One final mention, before you can play and if you haven't done it yet, go to your router's page and set your xbox one console as DMZ host. After this, turned it on as stated above and you can now play using Xbox app from Windows 10 everywhere.

First Time Author Contest

Participated in the
First Time Author Contest