/ HACKING

Streaming TV while traveling with Tailscale

I travel the world frequently, spending months at a time away from home. I love experiencing local food and culture when I travel, but I also like to watch my American sports and TV shows. I used to route my traffic through a home proxy over SSH, as I described in my original story. I now use Tailscale instead: a router at home is an exit node, and my travel router connects to it through my tailnet.

The main goal is still to route streaming traffic through my home internet connection. I now do most of my traveling streaming on a Roku Streaming Stick Pro 4K, which has no location capabilities, so the home exit node is the key part of that setup.

Step 1: Set up a home exit node

At home, I use a GL.iNet Beryl AX as my Tailscale exit node. An exit node routes internet traffic from other devices in the tailnet through the network where the exit node is located. I configure the Beryl AX in Tailscale and make it available as an exit node.

Step 2: Connect the travel router

When I travel, I bring a GL.iNet Beryl 7 travel router. It connects to my tailnet and uses the Beryl AX at home as its exit node. Devices connected to the travel router then use my home internet connection, without needing to expose a service on my home network or configure port forwarding on the upstream router.

On the Beryl 7, I use gl-tailscale-fix by @rthco and the optimized Tailscale binary from @admon. I also manually disabled the netlifyd process, which freed up about 24 MB of memory. These customizations resolved the out-of-memory errors I was encountering on the Beryl 7.

Step 3: Check the connection

Once the travel router is connected to the tailnet and using the home exit node, I check my public IP address at whatismyipaddress.com. It should show the public IP address of my home internet connection, rather than the connection where I’m traveling.

Step 4: For streaming in a computer browser

The Roku does not report a browser location, so there is no configuration there. When I stream in a computer browser, some services may also use the location reported by the browser. In that case, I still use the Location Guard browser extension to report a fixed location at home.

Conclusion

My current setup sends traffic from devices on the travel router through my home network using Tailscale. I travel with a Roku Streaming Stick Pro 4K for watching TV; it uses the home exit node for its network connection and does not have browser-location capabilities. Location Guard remains useful only when I stream from a computer browser. Streaming services can change their policies and detection methods, so this approach may not work with every service or in every location.

Tips

  • Use a separate browser, or browser profile, for streaming with Location Guard configured to report your home location.
rob

Rob Anderson

Rob is an AWS Certified Solutions Architect Associate and AWS Certified Developer Assoctiate. He's been software engineering since 1999.

Read More