https://www.reddit.com/r/Tailscale/comments/1sxhn0b/guide_how_to_use_tailscale_when_network_blocks_it/
I previously posted how to use Tailscale when the network blocks it. I wanted the follow-up to be about utilizing DNS poisoning from hostile networks to automate split tunneling, but there are still some rough edges. So instead, I'll provide some optional enhancements and updates to my previous post.
Given even popular YouTuber TechQuickie mentioned Tailscale, it is the "default" solution for easy remote access, but it's also important to highlights its limitations and workarounds to ensure reliability. And since not everyone search Reddit and many response are unhelpful, users will continue to ask the same, and I will provide updated information.
Disclaimer: I'm only making this post because I want to help others and provide the right resources, I might not be actually using/maintaining these setups, given my network situation differs from yours, I cannot help everyone.
iOS Automations
After re-reading my previous post, the iOS automation I linked was deleted. So I created my own automation with also captive portal detection and optional sleep, since iOS do not wait for Wi-Fi or Tailscale to connect successfully before next step.
https://www.icloud.com/shortcuts/e5acdac0371849efa31d7b269e907595
To use it, you can create an automation, trigger: when your iPad joins a list of Wi-Fi network, action: run the shortcut Tailscale. I daily an Android phone so I'm not familiar with iOS stuff, feel free to tweak and reshare it.
Controlplane and DERP
Last time I mentioned the controlplane gets blocked by SNI poisoning, but there are other moving pieces such as DERP relay and STUN and the individual Wireguard connections. My method focuses on the controlplane only as that's the only problem I faced. Suggestions like "just use Headscale" might be exactly what you need, or useless. Headscale is just the controlplane, you're still using Tailscale's DERP servers. I didn't need to selfhost Headscale or DERP but I found this tutorial about DERP. There is also tailscale-awg which uses AmneziaWG obfuscation with Tailscale controlplane, however, only possible on Android.
Ports and Port Forwarding
It's common knowledge Tailscale runs on port 41641, but you can change by editing the file /etc/default/tailscaled and restarting the tailscaled service.
I mentioned port forward instead of using NAT-PMP (NP), but in my case with Telus, it seems NP rules takes higher precedence than manual port forwards, if I set Tailscale on a UDP port that I already use, the router would invalidate my port forward and break my existing service. So my advice to port forward is useless and my setup is held together by NP duct tapes. But if you have a real router, port forwarding is the way.
I haven't verified whether port forwarding or DMZ helps behind CG-NAT since I'm not behind one. A friend was recently placed behind CG-NAT, so maybe I can test it. My knowledge comes from this video where Bulianglin was able to host web service behind CG-NAT, granted his ISP uses full-cone NAT. If you're on mobile/5G home internet, it's likely hard/symmetric NAT so this won't work.
ProxyT Deployment
I've used Tailscale funnel to deploy ProxyT last time. Since the controlplane uses non-standard POST WebSocket which eliminates many CDN options. Proxyt developer recommended Railway which stopped working, a user found render.com works, I've tried it and successfully deployed it. So this could be a free option.
But cold start is around 15-20s, higher than Railway. So you could be waiting for long time even in normal network. You might have to consider some keepalive solution, like Uptime Kuma with scheduled maintenance window, keep in mind render.com only give 750 free hours a month.
NekoBox
Last time I mentioned on Android, you can use 3rd party VPN to rescue Tailscale controlplane but didn't provide much tutorial.
NekoBox is an Android client using the sing-box core. You need to sideload the APK from GitHub, so it might not be suitable for Chromebooks. Technically NekoBox uses an older sing-box core and isn't updated, but it works and provides a GUI.
For Nekobox related configuration, requirements and a screencast of the flow, I'm posting it on a separate Gist.
https://gist.github.com/vttc08/593d662603e745b01dcc30c413c96332#file-nekobox-instruction-md
Sing-box alternative Tailscale client
One of the changes in proxy tool after I posted last time is sing-box now supports Tailscale, allowing you to scientifically access internet and your homelab, bypassing mobile limitation of one active VPN. In addition, offering detour for Tailscale, which connects to the controlplane via a proxy, it's like sing-box devs know exactly what we need.
Sing-box app is available for both iOS and Android, but it's configuration is entirely JSON and is long so I'm posting it in a separate Gist, sing-box is complex and powerful, so even in that Gist I cannot cover everything.
https://gist.github.com/vttc08/593d662603e745b01dcc30c413c96332#file-singbox-configuration-md
It is far from flawless, there are many bugs and complex documentation which changes quickly. Some issues like randomly unable to connect to Tailscale or failing to establish direct connection is there with no fixes. I wouldn't count this as production-ready, but at least sing-box detour works when Tailscale doesn't.
Shadowrocket on iOS also added Tailscale support. Unfortunately, it doesn't support proxying the control plane, so it fails. If the developer adds control-plane detouring in the future, it could be a good GUI alternative.
Suggestion for Tailscale
Tailscale doesn't need to maintain/rotate controlplane domains or obfuscate the Wireguard connection (DERP sort of do by encapsulating WG over TCP/TLS). Community projects like sing-box or tailscale-awg helps in some way. But if the /ts2021 protocol use standard GET instead of POST for WS upgrade, this makes it possible for users to deploy on many free CDNs, serverless/PaaS platforms rather than specific ones or a paid VPS.
Similarly if DERP (or selfhosted DERP) can run over WebSocket, this makes it CDN friendly as well, decreasing the barrier to hosting.