Xbox One Streaming to Windows 10 Outside Network Without VPN
by RMAlves in Circuits > Microsoft
8866 Views, 10 Favorites, 0 Comments
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
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
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
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
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";
?>
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.