Watch this video to Install Free VPN
🚀 ULTIMATE TAILSCALE NODE SETUP (Linksys EA8300)
1️⃣ Initial Router Initialization
Primary Router Preparation for Tailscale
On the Primary Router's Web Portal (http://192.168.1.1) Log In: Navigate to Administration > Commands
Copy and Paste the following into the Commands BOX:
============== COPY ALL TEXT BELOW THIS LINE =======================
#Startup the following line is optional but nice to have
sleep 5; ntpclient -s -h time.google.com
# Ensure the Tailscale range is always trusted
route add -net 100.64.0.0 netmask 255.192.0.0 gw 192.168.1.2
=============== COPY ALL TEXT ABOVE THIS LINE ======================
Click the ➔ [Save Startup] button at the bottom of the page
-----------------------------------------------------------------------------------------
Again on the Router Config Web Portal on (http://192.168.1.1) Navigate to Administration > Commands
Copy and Paste the following into the Commands BOX
============== COPY ALL TEXT BELOW THIS LINE =======================
#Firewall Rule for 192.168.1.1 SMB router
# The Trust Rule (Tells the Samba server to allow the Tailscale IP range)
iptables -I INPUT -s 100.64.0.0/10 -j ACCEPT
=============== COPY ALL TEXT ABOVE THIS LINE ======================
Click the ➔ [Save Firewall] button at the bottom of the page
On the (http://192.168.1.1) Router. Navigate to the Administration>Management tab on the router and reboot the primary router
2 Initial Tailscale Router (192.168.1.2) Initialization
WIFI OFF: Turn your computer's WIFI connection OFF.
Direct Connection: Plug your computer directly into one of the router LAN ports using a single Ethernet cable.
Hard Reset: Hard reset the DD-WRT router by pushing the reset in button for 15 seconds OR log into the router interface go to Administration > Factory Defaults. Click the radio button to YES next to the Restore to Factory Defaults. Click on ➔ [Save & Apply].
Login: Type http://192.168.1.1 in a browser ➔ Press [ENTER] Create your Router Username and Password. Log back in.
Click on the Administration Tab. On the Management page, In the Web Access BOX, Click the Info Site Password Protection box to Enabled. Click on ➔ [Save & Apply].
Click on the Setup Tab > Basic Setup > WAN Connection Type Box. Choose [Disabled]. (This tells the router we are not using the WAN port).
Router Name: In the Optional Settings Box, change the Router Name to (DD-Cloud).
Performance: Change the Shortcut Forwarding Engine to [CTF] or On radio button. Set Flow Acceleration to [CTF & FA] if it's an option.
Router IP Setup (Network Setup > Router IP):
Local IP Address: 192.168.1.2 /24
Subnet Mask: 255.255.255.0 (MAY NOT BE REQUIRED if you see the /24 above you will not need it)
Gateway Address: 192.168.1.1
Local DNS Address: 192.168.1.1
DHCP Box: Set the DHCP Server radio button to Disable.
Below that uncheck the boxes next to:
Use dnsmasq for DNS
DHCP-Authoritative
Time Sync (NTP Client Settings Box): Set the time zone to your location.
In the Server IP / Name box, type (time.google.com)
Finalize Phase 1: Click [Save] at the bottom of the page.
Wireless: Navigate to the Wireless > Basic Settings Tab. On the Network Mode Box for each Wireless Interface, switch the setting to [Disabled].
Click [Save] at the bottom of the page.
SSH Services: Navigate to the Services tab. In the Secure Shell (SSH) Box, Enable Daemon by clicking on the enable radio button.
Clean up: Disable Telnet and WAN Traffic Counter. Click [Save and Apply] at the bottom of the page.
Physically Plug in your USB thumb drive if you have done so already, move on to the next step.
USB Config: On the Services>USB Tab, enable: Core USB Support, USB Storage Support, and Automatic Drive Mount. Click [Save and Apply].
Physically turn your router OFF and back ON to Reboot Router.
3 Physical Network Integration & Final Services
New Access Point: Your configured Tailscale node is now live at http://192.168.1.2.
Reconnect PC: Disconnect your the EA8300 (Tailscale Node) from your PC. Reconnect your computer to your Main Router (192.168.1.1) via Wi-Fi or an Ethernet cable.
Bridge Routers: Connect an Ethernet cable from a LAN port on the Tailscale router (192.168.1.2) to a LAN port on your Main Router (192.168.1.1).
USB Installation: Physically install the USB thumb drive into the TAILSCALE router's USB port.
Web Portal: Type (http://192.168.1.2) in a browser ➔ Press ENTER log in if required.
4 Linux Drive Setup (Script: f.sh)
Verify Mount: Navigate to the Services>USB Tab The USB drive should automatically mount and display in the Disk Info box.
Open CMD: Open a CMD window (Run as administrator is optional).
SSH In: Type (ssh root@192.168.1.2) ➔ press [ENTER] Log In.
Once you are ssh logged into the router type (ping -c 4 google.com) ➔ Press ENTER
You should see the following:
PING www.google.com (142.251.186.102): 56 data bytes
64 bytes from 142.251.186.102: seq=0 ttl=109 time=27.183 ms
64 bytes from 142.251.186.102: seq=1 ttl=109 time=29.395 ms
64 bytes from 142.251.186.102: seq=2 ttl=109 time=32.356 ms
64 bytes from 142.251.186.102: seq=3 ttl=109 time=25.291 ms
--- google.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 25.291/28.556/32.356 ms
If you do not get a response from google then some part of your configuration is not correct go back and check your physical connection is as I instructed, if that's not correct fix it.
If it is correct and the ping is still not working Navigate back to the Setup Tab>Wan Connection Type drop down box and change from [Disabled] to [Automatic Configuration - DHCP] click
the [Save & Apply] button at the bottom of the page. Now set it back to [Disabled] click
the [Save & Apply] button at the bottom of the page. Reboot the router.
SSH In: Type (ssh root@192.168.1.2) in the CMD box ➔ press [ENTER] Log In.
Try the ping command again.
Type (ping -c 4 google.com) ➔ Press ENTER
If the above does not work, reset your router (factory defaults) and follow my configuration instructions above EXACTLY. If you get the proper response we can move on.
Create Script using vi editor:
Type (vi f.sh) ➔ press [ENTER]
Type (i) in the editor and copy/paste the following:
============== COPY ALL TEXT BELOW THIS LINE =======================
#!/bin/sh
TARGET_DRIVE="/dev/sda"
TARGET_DEV="/dev/sda1"
echo "------------------------------------------------"
echo "ATTENTION: COMMENCING NUCLEAR DRIVE WIPE"
echo "------------------------------------------------"
# 1. Force Unmount
if grep -qs "$TARGET_DRIVE" /proc/mounts; then
echo "Unmounting all partitions on $TARGET_DRIVE..."
umount -l "$TARGET_DRIVE"* 2>/dev/null
fi
# 2. Wipe the MBR and Partition Table (The Nuclear Fix)
# This clears the first 10MB, killing any ghost NTFS or Windows data
echo "Wiping MBR and Partition Table..."
dd if=/dev/zero of="$TARGET_DRIVE" bs=1M count=10 conv=notrunc
sync
# 3. Create a New Linux Partition Table
# Sequence: o (new DOS table), n (new partition), p (primary), 1 (number),
# [default start], [default end], t (type), 83 (Linux ID), w (write)
echo "Creating new Linux partition table..."
printf "o\nn\np\n1\n\n\nt\n83\nw\n" | fdisk "$TARGET_DRIVE" > /dev/null 2>&1
sync
# 4. Format to ext4
echo "Formatting $TARGET_DEV as ext4 (This may take a minute)..."
mkfs.ext4 -F "$TARGET_DEV"
# 5. Disk Integrity Check
echo "Verifying filesystem health..."
e2fsck -f -p "$TARGET_DEV"
CHECK_VAL=$?
# 6. Get UUID and Scrub it
FULL_UUID=$(blkid -s UUID -o value "$TARGET_DEV" | tr -d ' \n\r"')
if [ -z "$FULL_UUID" ]; then
echo "ERROR: UUID not found. The hardware may be failing or write-protected."
exit 1
fi
# 7. Extract last 4 for Labeling
LABEL=${FULL_UUID#${FULL_UUID%????}}
echo "Cleaned UUID: $FULL_UUID"
echo "New Target Label: $LABEL"
# 8. Apply the Label
tune2fs -L "$LABEL" "$TARGET_DEV"
if [ $? -eq 0 ]; then
echo "------------------------------------------------"
echo "SUCCESS: $TARGET_DEV is now ext4, Partition ID 83,"
echo "and labeled '$LABEL'. You now have a freshly FORMATED EXT4 LINUX DRIVE"
echo "------------------------------------------------"
fi
=============== COPY ALL TEXT ABOVE THIS LINE ======================
Press [ESC], type (:wq) ➔ press [ENTER]
Type (chmod +x f.sh) ➔ press [ENTER]
Type (./f.sh) ➔ press [ENTER] Wait for confirmation.
Reboot: Type (reboot) ➔ press [ENTER] (You will be disconnected).
#########################################################################################
5 Mounting & Swap File Script:
After the router reboots, Type (http://192.168.1.2) in a browser ➔ Press ENTER log in if required
Navigate to the Services >USB Tab
Copy the /dev/sda1 [UUID number] [4587F6E6-05D4-4EB8-9AE3-E3523FF68FE0] (Exclude "UUID" label and (/DCE/v4) at the end. Copy and paste the number in the (Mount Partition to /opt) box.
Click [Save & Apply] at the bottom of the page.
SSH In: Type (ssh root@192.168.1.2) ➔ press [ENTER] Log In.
Verify:
In CMD Window type (df -h -T) ➔ press [ENTER] to ensure /dev/sda1 is mounted on /opt. You should see will vary depending on the size of your drive:
/dev/sda1 ext4 14.1G 2.0M 13.4G 0% /opt
Reboot: Type (reboot) ➔ press [ENTER] (You will be disconnected).
SSH In: Type (ssh root@192.168.1.2) ➔ press [ENTER] Log In.
------------------------------------------------------------------------------------------------------------------------
Create a Swap File Script:
Type (vi s.sh) ➔ press [ENTER] In the vi editor Type (i) copy and paste the following:
============== COPY ALL TEXT BELOW THIS LINE =======================
#!/bin/sh
# --- 1. DEFINE VARIABLES ---
SWAP_PATH="/opt/.swap"
SIZE_MB=2048
BLOCK_SIZE=64
COUNT=$((SIZE_MB / BLOCK_SIZE))
echo "------------------------------------------------"
echo "Initializing Swap Setup"
echo "------------------------------------------------"
# --- 2. INTELLIGENT DEACTIVATION ---
# Check if any swap is actually active in /proc/swaps
if grep -q "$SWAP_PATH" /proc/swaps; then
echo "Active swap detected at $SWAP_PATH. Deactivating..."
swapoff "$SWAP_PATH" >/dev/null 2>&1
else
echo "No active swap found for $SWAP_PATH. Skipping deactivation."
fi
if [ -f "$SWAP_PATH" ]; then
echo "Removing existing swap file to ensure a clean allocation..."
rm -f "$SWAP_PATH"
fi
# --- 3. ALLOCATE SPACE WITH PROGRESS METER ---
echo "Allocating ${SIZE_MB}MB at $SWAP_PATH..."
echo -n "Progress: ["
i=0
while [ $i -lt $COUNT ]; do
dd if=/dev/zero bs=1M count=$BLOCK_SIZE >> "$SWAP_PATH" 2>/dev/null
echo -n "."
i=$((i + 1))
done
echo "] 100%"
# --- 4. PERMISSIONS & FORMATTING ---
chmod 600 "$SWAP_PATH"
echo "Formatting filesystem as swap..."
mkswap "$SWAP_PATH" >/dev/null 2>&1
# --- 5. ACTIVATION WITH KERNEL CHECK ---
echo "Attempting to activate swap space..."
# Check if swapon command exists at all
if ! command -v swapon >/dev/null 2>&1; then
echo "CRITICAL ERROR: 'swapon' command not found. Your firmware lacks swap tools."
exit 1
fi
swapon "$SWAP_PATH" 2>/dev/null
# --- 6. VERIFICATION ---
if [ $? -eq 0 ]; then
echo "------------------------------------------------"
echo "SUCCESS: 2GB Swap is now LIVE."
grep -E 'Swap(Total|Free)' /proc/meminfo
echo "------------------------------------------------"
else
echo "------------------------------------------------"
echo "FAILED: The kernel rejected the swap activation."
echo "Reason: likely 'Function not implemented' (No Kernel Support)."
echo "------------------------------------------------"
rm -f "$SWAP_PATH" # Clean up the 2GB file if it can't be used
exit 1
fi
=================== COPY ALL TEXT ABOVE THIS LINE ======================
Press [ESC], type (:wq) ➔ press [ENTER]
Type (chmod +x s.sh) ➔ press [ENTER]
Type (./s.sh) This will take a bit.
You should see something like:
------------------------------------------------
Initializing Swap Setup
------------------------------------------------
No active swap found for /opt/.swap. Skipping deactivation.
Allocating 2048MB at /opt/.swap...
Progress: [................................] 100%
Formatting filesystem as swap...
Attempting to activate swap space...
------------------------------------------------
SUCCESS: 2GB Swap is now LIVE.
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
------------------------------------------------
5️⃣ Entware & Tailscale Installation Scripts: e.sh & t.sh
Entware script:
In CMD Window type (vi e.sh) ➔ press [ENTER] Type (i) copy and paste the following:
============== COPY ALL TEXT BELOW THIS LINE =======================
#!/bin/sh
# --- 1. ARCHITECTURE DETECTION ---
ARCH=$(uname -m)
case "$ARCH" in
"armv7l") REPO="http://bin.entware.net/armv7sf-k3.2/installer/generic.sh" ;;
"aarch64") REPO="http://bin.entware.net/aarch64-k3.10/installer/generic.sh" ;;
"mips"|"mipsel") REPO="http://bin.entware.net/mipselsf-k3.4/installer/generic.sh" ;;
*) echo "ERROR: Architecture $ARCH not supported."; exit 1 ;;
esac
# --- 2. INTERNET & CONNECTIVITY CHECK ---
echo "Checking internet connectivity..."
MAX_RETRIES=5
COUNT=0
while [ $COUNT -lt $MAX_RETRIES ]; do
if ping -c 1 8.8.8.8 >/dev/null 2>&1; then
echo "Internet OK."
break
fi
echo "Waiting for WAN... (Attempt $((COUNT+1))/$MAX_RETRIES)"
sleep 5
COUNT=$((COUNT + 1))
done
if [ $COUNT -eq $MAX_RETRIES ]; then
echo "ERROR: No internet connection. Please check your WAN cable/settings."
exit 1
fi
# --- 3. DATE & TIME SYNC (NTP CHECK) ---
# SSL/HTTPS will fail if the router thinks it is 1970.
echo "Syncing system clock with NTP..."
ntpclient -s -h time.google.com >/dev/null 2>&1
CURRENT_YEAR=$(date +%Y)
if [ "$CURRENT_YEAR" -lt 2024 ]; then
echo "WARNING: System date is incorrect ($CURRENT_YEAR). SSL downloads may fail."
echo "Attempting manual sync..."
# Manual backup sync if ntpclient failed
date -s "2026-04-05 12:00:00" # Sets to roughly today's date
fi
echo "Current System Date: $(date)"
# --- 4. PRE-FLIGHT & MOUNT ---
mount -o remount,rw,exec /opt
if [ ! -w "/opt" ]; then
echo "ERROR: /opt is not writeable. Check USB mount."
exit 1
fi
# --- 5. INSTALLATION ---
echo "Starting Entware installation for $ARCH..."
cd /opt
wget -O - "$REPO" | sh
# Update Path for the current session
export PATH=/opt/bin:/opt/sbin:$PATH
# --- 6. CORE UTILITIES & TAILSCALE ---
/opt/bin/opkg update
/opt/bin/opkg install wget-ssl ca-bundle ca-certificates nano tailscale
# --- 7. TUN DEVICE SETUP ---
if [ ! -d /dev/net ]; then mkdir -p /dev/net; fi
if [ ! -c /dev/net/tun ]; then mknod /dev/net/tun c 10 200; fi
echo "------------------------------------------------"
echo " SUCCESS: Entware and Tailscale ($ARCH) Installed."
echo " System Time: $(date)"
echo "Congratulations! you just installed Entware Software Package Manager"
echo " And Tailscale on Your router!"
echo "------------------------------------------------"
================== COPY ALL TEXT ABOVE THIS LINE ======================
Press [ESC], type (:wq) ➔ press [ENTER]
Type (chmod +x e.sh) ➔ press [ENTER]
Type (./e.sh) ➔ press [ENTER]
-------------------------------------------------------------------------------------------
Type (vi UpdateTailScale.sh) ➔ press [ENTER] type (i) copy and paste the following:
============== COPY ALL TEXT BELOW THIS LINE =======================
#!/bin/sh
# --- 1. ENVIRONMENT & LIBRARY FIX ---
# This line tells the system to look in /opt/lib FIRST
export LD_LIBRARY_PATH=/opt/lib:/opt/usr/lib:/lib:/usr/lib
export PATH=/opt/bin:/opt/sbin:$PATH
if ! grep -q "/opt" /proc/mounts; then
echo "ERROR: /opt is not mounted."
exit 1
fi
# --- 2. ARCHITECTURE ---
ARCH=$(uname -m)
case "$ARCH" in
"armv7l") REPO="http://bin.entware.net/armv7sf-k3.2/installer/generic.sh"; TS_ARCH="arm" ;;
"aarch64") REPO="http://bin.entware.net/aarch64-k3.10/installer/generic.sh"; TS_ARCH="arm64" ;;
"mips"|"mipsel") REPO="http://bin.entware.net/mipselsf-k3.4/installer/generic.sh"; TS_ARCH="mips" ;;
*) echo "ERROR: $ARCH not supported."; exit 1 ;;
esac
# --- 3. TIME & DNS ---
date -s "2026-04-09 12:00:00" >/dev/null 2>&1
[ ! -f /etc/resolv.conf ] || grep -q "8.8.8.8" /etc/resolv.conf || echo "nameserver 8.8.8.8" > /etc/resolv.conf
# --- 4. ENTWARE REPAIR ---
if [ ! -f "/opt/bin/opkg" ]; then
/usr/bin/wget -O - "$REPO" | sh
fi
/opt/bin/opkg update
# --- 5. THE DOWNLOADER SELECTION ---
if [ -f "/opt/bin/wget" ]; then
WGET_BIN="/opt/bin/wget"
else
WGET_BIN="/usr/bin/wget"
fi
# --- 6. TAILSCALE UPGRADE ---
echo "Downloading Tailscale for $TS_ARCH using $WGET_BIN..."
cd /tmp
$WGET_BIN --no-check-certificate "https://pkgs.tailscale.com/stable/tailscale_latest_${TS_ARCH}.tgz" -O ts.tgz
if [ -s "ts.tgz" ]; then
echo "Upgrading binaries..."
tar xzf ts.tgz
[ -f /opt/etc/init.d/S06tailscaled ] && /opt/etc/init.d/S06tailscaled stop
TS_DIR=$(ls -d tailscale_*)
cp "$TS_DIR/tailscale" /opt/bin/tailscale
cp "$TS_DIR/tailscaled" /opt/sbin/tailscaled
chmod +x /opt/bin/tailscale /opt/sbin/tailscaled
rm -rf tailscale_* ts.tgz
echo "Upgrade complete."
else
echo "Manual upgrade failed. Using existing version."
fi
echo "------------------------------------------------"
echo " SUCCESS: Tailscale $(/opt/bin/tailscale version | head -n 1)"
echo "------------------------------------------------"
=============== COPY ALL TEXT ABOVE THIS LINE ======================
Press [ESC], type (:wq) ➔ press [ENTER]
Type (chmod +x UpdateTailScale.sh) ➔ press [ENTER]
Type (cp UpdateTailScale.sh /opt)
********************************************************************
The above command copies UpdateTailScale.sh update script to the /opt directory
permanently, where it can be run any time to update Tailscale.
To use the update script you log in with ssh and Type (/opt/UpdateTailScale.sh) ➔ press [ENTER]
**********************************************************************
Type (/opt/UpdateTailScale.sh) ➔ press [ENTER]
Type (tailscale status) ➔ press [ENTER]
You should see: Logged out.
6️⃣ Automation (Startup & Firewall)
Tailscale Node Startup Commands:
On the Router Config Web Portal (http://192.168.1.2), Navigate to Administration > Commands
Copy and Paste the following into the Commands BOX:
============== COPY ALL TEXT BELOW THIS LINE =======================
#STARTUP
MAX_RETRIES=360; COUNT=0; while [ $COUNT -lt $MAX_RETRIES ]; do if ping -c 1 8.8.8.8 >/dev/null 2>&1; then break; fi; sleep 2; COUNT=$((COUNT + 1)); done; ntpclient -s -h time.google.com
sleep 5; echo 8192 > /proc/sys/vm/min_free_kbytes; if [ -f "/opt/.swap" ]; then touch /opt/.swap; swapon /opt/.swap; fi; if [ -e /proc/sys/vm/swappiness ]; then echo 10 > /proc/sys/vm/swappiness; fi
if [ -d "/opt/bin" ]; then /opt/etc/init.d/rc.unslung start; sleep 2; echo 1 > /proc/sys/net/ipv4/ip_forward; /opt/bin/tailscale up --advertise-routes=192.168.1.0/24 --accept-dns=false; fi
( while true; do sleep 600; ntpclient -s -h pool.ntp.org; echo 1 > /proc/sys/net/ipv4/ip_forward; /opt/bin/tailscale up --advertise-routes=192.168.1.0/24 --accept-dns=false; if [ -d "/tmp/dnsmasq" ]; then if ! grep -q "100.100.100.100" /tmp/dnsmasq/resolv.conf; then echo "server=/tailscale.net/100.100.100.100" >> /tmp/dnsmasq/resolv.conf; killall -HUP dnsmasq; fi; fi; done ) &
( while true; do sleep 400; if ! /opt/bin/tailscale status >/dev/null 2>&1; then sleep 30; if ! /opt/bin/tailscale status >/dev/null 2>&1; then reboot; fi; fi; if ! ping -c 1 8.8.8.8 >/dev/null 2>&1; then sleep 10; if ! ping -c 1 1.1.1.1 >/dev/null 2>&1; then reboot; fi; fi; done ) &
=============== COPY ALL TEXT ABOVE THIS LINE ======================
Click the ➔ [Save Startup] button at the bottom of the page
-------------------------------------------------------------------------------------------
Again on the Router Config Web Portal on (http://192.168.1.2) Navigate to Administration > Commands
Copy and Paste the following into the Commands BOX:
============== COPY ALL TEXT BELOW THIS LINE =======================
#FIREWALL
# Open the Forwarding Gates (Allows traffic to cross between interfaces)
iptables -I FORWARD -i tailscale0 -o br0 -j ACCEPT
iptables -I FORWARD -i br0 -o tailscale0 -m state --state RELATED,ESTABLISHED -j ACCEPT
=============== COPY ALL TEXT ABOVE THIS LINE ======================
Click the ➔ [Save Firewall] button at the bottom of the page
############################################################################################
On the (http://192.168.1.2) Router. Navigate to the Administration>Management tab on the router and reboot the Tailscale router
In the command (CMD) Window
SSH back in: Type (ssh root@192.168.1.2) ➔ press [ENTER] Log In.
Type (tailscale status) ➔ press [ENTER]
You should see this output:
Logged out.
Log in at: https://login.tailscale.com/d/c7fb1ae324cab
*****This will be a unique output on your router.*****
Copy paste it what the router outputs in Notepad for now.
Create your free account at https://login.tailscale.com/start
Log in to your free account https://login.tailscale.com/login
paste https://login.tailscale.com/d/c7fb1ae324cab into the same browser that you're logged into.
Authorize your device and click on connect
It should say Login successful and take you to your Tailscale console
There you should see your new machine listed.
Click on the three [...] to the left of your machine and choose [Edit route settings…]
You should see:
Edit route settings of dd-cloud
Subnet routes
[Connect to devices you can’t install Tailscale on by advertising IP ranges as subnet routes. Learn more]
1 route is advertised but not approved
Click on the box next to 192.168.1.0/24 CLICK [SAVE]
You may want to
Exit node
Allow your network to route internet traffic through this machine. Learn more
You will also see:
Key expiry is enabled
If this machine’s key expires, your relayed traffic may be interrupted until you reauthenticate.
If you don't want that to happen then
Click on the three [...] to the left of your machine and choose Disable key expiry.
Install the Tailscale app on your mobile phone/device IOS or Android
I'm using Android
Download>Open
Accept the connection request
Login using the credentials you used to create your Tailscale account.
Authorize if required
Click Connect
Accept the notifications (up to you) Allow
On the top right of the app click on the icon (Settings)
Click on subnet routing
Make sure that Use Tailscale subnets is ON or activated
Check your Web Tailscale console, your phone should be listed
We use cookies to analyze website traffic and optimize your website experience. By accepting our use of cookies, your data will be aggregated with all other user data.