Skip to main content


!Selfhosted I have an #OpenWRT router. Let’s say I install Tailscale on it and want to create an interface that specifically routes to one of my exit nodes. Can I do that?

Everything I’ve seen about Tailscale on OpenWRT just provides direct router access to the tailnet (100.x.x.x), but I specifically want to route certain traffic to an exit node.

Can I do this? Do me proud, Fediverse! Hoping I can get good answers here without resorting to Reddit.

Selfhosted reshared this.

in reply to Sarah Brown

I am a total beginner in this regard, but maybe maybe this could help you:

Check out PBR - policy-based-routing. On OpenWRT there is an app for this task, vpn-policy-routing (together with luci-app-vpn-policy-routing for a GUI inside LuCi).
This app helped me to route all traffic coming from my PiVPN to the WAN interface, instead of my commercial NordVPN. Now at home all my traffic goes to NordVPN and when I am not at home I can easily VPN into my home network.

https://openwrt.org/docs/guide-user/network/routing/pbr

Other than that, the OpenWRT Forum is very helpful, don't hesitate to ask your questions there.

in reply to glasgitarrewelt

@glasgitarrewelt Thanks. The routing is less the issue than creating the interface that sends traffic to the Tailscale exit node. AIUI the way Tailscale operates on OpenWRT is to provide an interface whose destination is the tailnet, not an exit node.
in reply to Sarah Brown

I’ve done something similar, though not with openwrt. There may be a decent way to do this on the firewall, but I ended up using the ACLs available from the Tailscale console.

I removed the default allow all rule. I made a group called admins that can access everything and then added a set of routes that everyone on the tail net could access.

I’ve only recently set this up, but initial testing seems to have this working as hoped.

in reply to Sarah Brown

I'm not sure this hits the nail for you or not, but I recently solved a question I had regarding tailscale and routing traffic through an exitnode that was using a VPN. Could be worth a peek.

Solution was Docker and Gluetun ✨

Check it her 👉 https://lemmy.world/post/7281194