Prerequisites
Before starting, ensure you have:
Server Requirements
- • RamNode VPS (Ubuntu 24.04 LTS)
- • SSH access with sudo privileges
- • Internet connectivity
Account Requirements
- • Free Tailscale account
- • Basic Linux command line knowledge
- • Understanding of networking concepts
What is Tailscale?
Tailscale is a zero-config VPN built on WireGuard that creates secure point-to-point connections between your devices. Unlike traditional VPNs, Tailscale creates a mesh network where devices can communicate directly with each other, with traffic automatically taking the most efficient path.
Initial VPS Setup
Connect to your RamNode VPS and update the system:
ssh root@your-vps-ip-addressapt update && apt upgrade -y
rebootAfter reboot, reconnect and verify the system:
uname -a
lsb_release -a✅ RamNode Advantage: RamNode's Ubuntu 24.04 LTS images provide a stable, optimized foundation for Tailscale with excellent network performance.
Install Tailscale
Install Tailscale using the official installation script:
curl -fsSL https://tailscale.com/install.sh | shAlternatively, you can install via package manager:
# Add Tailscale's package signing key and repository
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
# Install Tailscale
apt update
apt install tailscale💡 Note: The installation script automatically handles the repository setup and is the recommended method.
Configure Tailscale
Start Tailscale and authenticate with your account:
sudo tailscale upThis will display a URL for device authentication. Copy and open it in your browser to authenticate.
Authentication Process:
- Copy the authentication URL from the terminal
- Open the URL in your web browser
- Sign in to your Tailscale account
- Authorize the device
sudo tailscale statussudo tailscale ip -4🎉 Success! Your VPS is now connected to your Tailscale network with a unique IP address in the 100.x.x.x range.
Configure Subnet Routing
Enable your VPS as a subnet router to access your RamNode private network:
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf# Replace with your actual private network CIDR
sudo tailscale up --advertise-routes=10.24.0.0/16Check your private network CIDR:
ip route | grep -E "(10.|172.|192.168.)"
ip addr showEnable Subnet Router in Tailscale Admin:
- Go to the Tailscale admin console
- Find your VPS device
- Click the "..." menu and select "Edit route settings"
- Enable the advertised subnet routes
Add Devices to Network
Install Tailscale on your client devices:
Access Control Lists (ACLs)
Configure network access policies in the Tailscale admin console:
Basic ACL Configuration:
- • Go to Access Controls in the Tailscale admin console
- • Define user groups and device tags
- • Set up rules for inter-device communication
- • Configure subnet access permissions
{
"groups": {
"group:admin": ["user@example.com"],
"group:users": ["user1@example.com", "user2@example.com"]
},
"acls": [
{
"action": "accept",
"users": ["group:admin"],
"ports": ["*:*"]
},
{
"action": "accept",
"users": ["group:users"],
"ports": ["tag:server:22", "tag:server:80", "tag:server:443"]
}
]
}⚠️ Security: Always follow the principle of least privilege when configuring access controls.
Testing Your Network
Verify your Tailscale network is working correctly:
Connectivity Tests:
- • Ping between devices
- • SSH to your VPS via Tailscale IP
- • Access private network resources
- • Test from mobile devices
Network Information:
- • Check device status
- • Verify subnet routes
- • Test DNS resolution
- • Monitor connection logs
# Check Tailscale status
sudo tailscale status
# Ping another device (replace with actual Tailscale IP)
ping 100.x.x.x
# SSH via Tailscale IP
ssh user@100.x.x.x
# Check which routes are being advertised
sudo tailscale status --json | jq '.Self.PrimaryRoutes'# From a client device, ping a server in your private network
ping 10.24.0.x
# Test SSH to private IP through Tailscale
ssh user@10.24.0.x🎉 Success! If you can communicate between devices and access your private network, Tailscale is configured correctly!
