Web Analytics

tailscale-awg-installer

⭐ 142 stars English by LiuTangLei

Tailscale with Amnezia-WG 2.0 (v1.88.2+)

GitHub Release Platform Support License

Enhanced Tailscale client with Amnezia-WG 2.0 obfuscation: junk traffic, protocol signatures, and handshake/header masquerading to resist DPI and blocking. Until you enable AWG settings, it behaves like standard Tailscale.

Languages: English | 中文 | فارسی | Русский

For AWG v1.5 documentation, see doc/README-awg-v1.5.md.

Installation

| Platform | Command / Action | | --- | --- | | Linux | curl -fsSL https://raw.githubusercontent.com/LiuTangLei/tailscale-awg-installer/main/install-linux.sh \| bash | | macOS* | curl -fsSL https://raw.githubusercontent.com/LiuTangLei/tailscale-awg-installer/main/install-macos.sh \| bash | | Windows (Admin PowerShell) | iwr -useb https://raw.githubusercontent.com/LiuTangLei/tailscale-awg-installer/main/install-windows.ps1 \| iex | | OpenWrt | See OpenWrt Installation | | Android | Download APK from releases |

Android AWG Sync Example

Docker Compose

The repository includes docker-compose.yml for running tailscaled with AWG support.

docker compose down
cp -a /var/lib/tailscale ./tailscale-state

update docker-compose.yml

docker compose up -d

Basic flow:

If you use Headscale, add --login-server https://your-headscale-domain to tailscale up.

Optional host alias:

alias tailscale='docker exec -it tailscaled tailscale'

That alias only applies to the current shell. To keep it after reboot or a new terminal session, add it to ~/.bashrc or ~/.zshrc and reload your shell.

OpenWrt Installation

Default command:

wget -O /usr/bin/install.sh https://raw.githubusercontent.com/LiuTangLei/openwrt-tailscale-awg/main/install_en.sh && chmod +x /usr/bin/install.sh && /usr/bin/install.sh

Mirror command for regions with restricted GitHub access:

wget -O /usr/bin/install.sh https://ghfast.top/https://raw.githubusercontent.com/LiuTangLei/openwrt-tailscale-awg/main/install.sh && chmod +x /usr/bin/install.sh && /usr/bin/install.sh

This script is forked from GuNanOvO/openwrt-tailscale.

Mirrors

If GitHub is slow or blocked, you can self-host a prefix mirror such as https://your-mirror-site.com:

# Linux
curl -fsSL https://your-mirror-site.com/https://raw.githubusercontent.com/LiuTangLei/tailscale-awg-installer/main/install-linux.sh | bash -s -- --mirror https://your-mirror-site.com

macOS

curl -fsSL https://your-mirror-site.com/https://raw.githubusercontent.com/LiuTangLei/tailscale-awg-installer/main/install-macos.sh | bash -s -- --mirror https://your-mirror-site.com

# Windows
$scriptContent = (iwr -useb https://your-mirror-site.com/https://raw.githubusercontent.com/LiuTangLei/tailscale-awg-installer/main/install-windows.ps1).Content; $scriptBlock = [scriptblock]::Create($scriptContent); & $scriptBlock -MirrorPrefix 'https://your-mirror-site.com/'

If PowerShell blocks execution, use Set-ExecutionPolicy RemoteSigned or Bypass -Scope Process.

Quick Start

Tip: tailscale amnezia-wg is the same as tailscale awg.

# Official control server
tailscale up

Headscale

tailscale up --login-server https://your-headscale-domain

tailscale awg set

Press Enter at the auto-generation prompt to generate recommended values for everything except i1-i5.

tailscale awg get
tailscale awg reset

Configuration Presets

| Goal | Example | Compatibility | | --- | --- | --- | | Basic junk traffic | tailscale awg set '{"jc":4,"jmin":64,"jmax":256}' | Works with standard Tailscale peers | | Junk traffic + signatures | tailscale awg set '{"jc":2,"jmin":64,"jmax":128,"i1":""}' | Works with standard Tailscale peers | | Handshake masquerading | tailscale awg set '{"s1":10,"s2":15,"s3":8,"s4":0}' | All AWG nodes must use the same s1-s4 | | Full masquerading | tailscale awg set '{"s1":10,"s2":15,"s3":8,"s4":0,"h1":{"min":100000,"max":200000},"h2":{"min":300000,"max":350000},"h3":{"min":400000,"max":450000},"h4":{"min":500000,"max":550000}}' | All AWG nodes must use the same s1-s4 and h1-h4 | | Full masquerading + signatures | tailscale awg set '{"s1":10,"s2":15,"s3":8,"s4":0,"h1":{"min":100000,"max":200000},"h2":{"min":300000,"max":350000},"h3":{"min":400000,"max":450000},"h4":{"min":500000,"max":550000},"i1":""}' | i1-i5 may differ per node; s1-s4 and h1-h4 must match |

Parameter Reference

Very large junk counts or long signature chains increase latency and bandwidth usage.

Platform Support

| Platform | Arch | Status | | --- | --- | --- | | Linux | x86_64, ARM64 | ✅ Full | | macOS | Intel, Apple Silicon | ✅ Full | | Windows | x86_64, ARM64 | ✅ Installer | | OpenWrt | Various | ✅ Script | | Android | ARM64, ARM | ✅ APK (sync-only AWG) |

Advanced: CPS Protocol Signatures

CPS means Custom Protocol Signature. It lets you assemble custom obfuscation packets that can imitate arbitrary protocol headers; it is not limited to one specific protocol.

CPS format:

i{n} = ...

Tags:

  • : static bytes
  • : secure random bytes
  • : counter
  • : timestamp
Example:

i1 = 

If i1 is unset, i2-i5 are skipped.

Troubleshooting

Verify installation:

tailscale version
tailscale awg get

If connectivity breaks, reset to standard WireGuard and start from a simple preset:

tailscale awg reset
tailscale awg set '{"jc":2,"jmin":64,"jmax":128}'
sudo journalctl -u tailscaled -f
On Windows PowerShell, prefer interactive setup to avoid JSON escaping issues:

tailscale awg set

Links & Support

  • Releases:
  • Android APK:
  • Installer issues:
  • Amnezia-WG docs:

License

BSD 3-Clause License, same as upstream Tailscale.

--- Tranlated By Open Ai Tx | Last indexed: 2026-04-29 ---