@fredlackey/devutils 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/package.json +1 -1
- package/src/commands/install.js +374 -36
- package/src/installs/adobe-creative-cloud.js +527 -25
- package/src/installs/adobe-creative-cloud.md +605 -0
- package/src/installs/appcleaner.js +303 -26
- package/src/installs/appcleaner.md +699 -0
- package/src/installs/apt-transport-https.js +390 -0
- package/src/installs/apt-transport-https.md +678 -0
- package/src/installs/atomicparsley.js +624 -26
- package/src/installs/atomicparsley.md +795 -0
- package/src/installs/aws-cli.js +779 -26
- package/src/installs/aws-cli.md +727 -0
- package/src/installs/balena-etcher.js +688 -26
- package/src/installs/balena-etcher.md +761 -0
- package/src/installs/bambu-studio.js +912 -26
- package/src/installs/bambu-studio.md +780 -0
- package/src/installs/bash-completion.js +554 -23
- package/src/installs/bash-completion.md +833 -0
- package/src/installs/bash.js +399 -26
- package/src/installs/bash.md +993 -0
- package/src/installs/beyond-compare.js +585 -26
- package/src/installs/beyond-compare.md +813 -0
- package/src/installs/build-essential.js +511 -26
- package/src/installs/build-essential.md +977 -0
- package/src/installs/ca-certificates.js +618 -0
- package/src/installs/ca-certificates.md +937 -0
- package/src/installs/caffeine.js +490 -26
- package/src/installs/caffeine.md +839 -0
- package/src/installs/camtasia.js +577 -25
- package/src/installs/camtasia.md +762 -0
- package/src/installs/chatgpt.js +458 -26
- package/src/installs/chatgpt.md +814 -0
- package/src/installs/chocolatey.js +447 -0
- package/src/installs/chocolatey.md +661 -0
- package/src/installs/chrome-canary.js +472 -26
- package/src/installs/chrome-canary.md +641 -0
- package/src/installs/chromium.js +645 -26
- package/src/installs/chromium.md +838 -0
- package/src/installs/claude-code.js +558 -26
- package/src/installs/claude-code.md +1173 -0
- package/src/installs/curl.js +361 -26
- package/src/installs/curl.md +714 -0
- package/src/installs/cursor.js +561 -26
- package/src/installs/cursor.md +970 -0
- package/src/installs/dbschema.js +674 -26
- package/src/installs/dbschema.md +925 -0
- package/src/installs/dependencies.md +435 -0
- package/src/installs/development-tools.js +600 -0
- package/src/installs/development-tools.md +977 -0
- package/src/installs/docker.js +1010 -25
- package/src/installs/docker.md +1109 -0
- package/src/installs/drawio.js +1001 -26
- package/src/installs/drawio.md +795 -0
- package/src/installs/elmedia-player.js +328 -25
- package/src/installs/elmedia-player.md +556 -0
- package/src/installs/ffmpeg.js +870 -25
- package/src/installs/ffmpeg.md +852 -0
- package/src/installs/file.js +464 -0
- package/src/installs/file.md +987 -0
- package/src/installs/gemini-cli.js +793 -26
- package/src/installs/gemini-cli.md +1153 -0
- package/src/installs/git.js +382 -26
- package/src/installs/git.md +907 -0
- package/src/installs/gitego.js +931 -26
- package/src/installs/gitego.md +1172 -0
- package/src/installs/go.js +913 -26
- package/src/installs/go.md +958 -0
- package/src/installs/google-chrome.js +801 -25
- package/src/installs/google-chrome.md +862 -0
- package/src/installs/gpg.js +412 -73
- package/src/installs/gpg.md +1056 -0
- package/src/installs/homebrew.js +1015 -26
- package/src/installs/homebrew.md +988 -0
- package/src/installs/imageoptim.js +950 -26
- package/src/installs/imageoptim.md +1119 -0
- package/src/installs/installers.json +2297 -0
- package/src/installs/jq.js +382 -26
- package/src/installs/jq.md +809 -0
- package/src/installs/keyboard-maestro.js +701 -26
- package/src/installs/keyboard-maestro.md +825 -0
- package/src/installs/latex.js +771 -26
- package/src/installs/latex.md +1095 -0
- package/src/installs/lftp.js +338 -26
- package/src/installs/lftp.md +907 -0
- package/src/installs/lsb-release.js +346 -0
- package/src/installs/lsb-release.md +814 -0
- package/src/installs/messenger.js +829 -26
- package/src/installs/messenger.md +900 -0
- package/src/installs/microsoft-office.js +550 -26
- package/src/installs/microsoft-office.md +760 -0
- package/src/installs/microsoft-teams.js +782 -25
- package/src/installs/microsoft-teams.md +886 -0
- package/src/installs/node.js +886 -26
- package/src/installs/node.md +1153 -0
- package/src/installs/nordpass.js +698 -26
- package/src/installs/nordpass.md +921 -0
- package/src/installs/nvm.js +977 -26
- package/src/installs/nvm.md +1057 -0
- package/src/installs/openssh.js +734 -64
- package/src/installs/openssh.md +1056 -0
- package/src/installs/pandoc.js +644 -26
- package/src/installs/pandoc.md +1036 -0
- package/src/installs/pinentry.js +492 -26
- package/src/installs/pinentry.md +1142 -0
- package/src/installs/pngyu.js +851 -26
- package/src/installs/pngyu.md +896 -0
- package/src/installs/postman.js +781 -26
- package/src/installs/postman.md +940 -0
- package/src/installs/procps.js +425 -0
- package/src/installs/procps.md +851 -0
- package/src/installs/safari-tech-preview.js +355 -25
- package/src/installs/safari-tech-preview.md +533 -0
- package/src/installs/sfnt2woff.js +640 -26
- package/src/installs/sfnt2woff.md +795 -0
- package/src/installs/shellcheck.js +463 -26
- package/src/installs/shellcheck.md +1005 -0
- package/src/installs/slack.js +722 -25
- package/src/installs/slack.md +865 -0
- package/src/installs/snagit.js +566 -25
- package/src/installs/snagit.md +844 -0
- package/src/installs/software-properties-common.js +372 -0
- package/src/installs/software-properties-common.md +805 -0
- package/src/installs/spotify.js +858 -25
- package/src/installs/spotify.md +901 -0
- package/src/installs/studio-3t.js +803 -26
- package/src/installs/studio-3t.md +918 -0
- package/src/installs/sublime-text.js +780 -25
- package/src/installs/sublime-text.md +914 -0
- package/src/installs/superwhisper.js +687 -25
- package/src/installs/superwhisper.md +630 -0
- package/src/installs/tailscale.js +727 -26
- package/src/installs/tailscale.md +1100 -0
- package/src/installs/tar.js +389 -0
- package/src/installs/tar.md +946 -0
- package/src/installs/termius.js +780 -26
- package/src/installs/termius.md +844 -0
- package/src/installs/terraform.js +761 -26
- package/src/installs/terraform.md +899 -0
- package/src/installs/tidal.js +752 -25
- package/src/installs/tidal.md +864 -0
- package/src/installs/tmux.js +328 -26
- package/src/installs/tmux.md +1030 -0
- package/src/installs/tree.js +393 -26
- package/src/installs/tree.md +833 -0
- package/src/installs/unzip.js +460 -0
- package/src/installs/unzip.md +879 -0
- package/src/installs/vim.js +403 -26
- package/src/installs/vim.md +1040 -0
- package/src/installs/vlc.js +803 -26
- package/src/installs/vlc.md +927 -0
- package/src/installs/vscode.js +825 -26
- package/src/installs/vscode.md +1002 -0
- package/src/installs/wget.js +415 -0
- package/src/installs/wget.md +791 -0
- package/src/installs/whatsapp.js +710 -25
- package/src/installs/whatsapp.md +854 -0
- package/src/installs/winpty.js +352 -0
- package/src/installs/winpty.md +620 -0
- package/src/installs/woff2.js +535 -26
- package/src/installs/woff2.md +977 -0
- package/src/installs/wsl.js +572 -0
- package/src/installs/wsl.md +699 -0
- package/src/installs/xcode-clt.js +520 -0
- package/src/installs/xcode-clt.md +351 -0
- package/src/installs/xcode.js +542 -26
- package/src/installs/xcode.md +573 -0
- package/src/installs/yarn.js +806 -26
- package/src/installs/yarn.md +1074 -0
- package/src/installs/yq.js +636 -26
- package/src/installs/yq.md +944 -0
- package/src/installs/yt-dlp.js +683 -26
- package/src/installs/yt-dlp.md +946 -0
- package/src/installs/yum-utils.js +297 -0
- package/src/installs/yum-utils.md +648 -0
- package/src/installs/zoom.js +740 -25
- package/src/installs/zoom.md +884 -0
- package/src/scripts/README.md +567 -45
- package/src/scripts/STATUS.md +208 -0
- package/src/scripts/afk.js +395 -7
- package/src/scripts/backup-all.js +731 -9
- package/src/scripts/backup-source.js +711 -8
- package/src/scripts/brewd.js +373 -7
- package/src/scripts/brewi.js +505 -9
- package/src/scripts/brewr.js +512 -9
- package/src/scripts/brews.js +462 -9
- package/src/scripts/brewu.js +488 -7
- package/src/scripts/c.js +185 -7
- package/src/scripts/ccurl.js +325 -8
- package/src/scripts/certbot-crontab-init.js +488 -8
- package/src/scripts/certbot-init.js +641 -9
- package/src/scripts/ch.js +339 -7
- package/src/scripts/claude-danger.js +253 -8
- package/src/scripts/clean-dev.js +419 -8
- package/src/scripts/clear-dns-cache.js +525 -7
- package/src/scripts/clone.js +417 -7
- package/src/scripts/code-all.js +420 -7
- package/src/scripts/count-files.js +195 -8
- package/src/scripts/count-folders.js +195 -8
- package/src/scripts/count.js +248 -8
- package/src/scripts/d.js +203 -7
- package/src/scripts/datauri.js +373 -8
- package/src/scripts/delete-files.js +363 -7
- package/src/scripts/docker-clean.js +410 -8
- package/src/scripts/dp.js +426 -7
- package/src/scripts/e.js +375 -9
- package/src/scripts/empty-trash.js +497 -7
- package/src/scripts/evm.js +428 -9
- package/src/scripts/fetch-github-repos.js +441 -10
- package/src/scripts/get-channel.js +329 -8
- package/src/scripts/get-course.js +384 -11
- package/src/scripts/get-dependencies.js +290 -9
- package/src/scripts/get-folder.js +783 -10
- package/src/scripts/get-tunes.js +411 -10
- package/src/scripts/get-video.js +352 -9
- package/src/scripts/git-backup.js +561 -9
- package/src/scripts/git-clone.js +477 -9
- package/src/scripts/git-pup.js +303 -7
- package/src/scripts/git-push.js +380 -8
- package/src/scripts/h.js +607 -9
- package/src/scripts/hide-desktop-icons.js +483 -7
- package/src/scripts/hide-hidden-files.js +522 -7
- package/src/scripts/install-dependencies-from.js +440 -9
- package/src/scripts/ips.js +647 -10
- package/src/scripts/iso.js +354 -8
- package/src/scripts/killni.js +561 -7
- package/src/scripts/ll.js +451 -8
- package/src/scripts/local-ip.js +310 -8
- package/src/scripts/m.js +508 -8
- package/src/scripts/map.js +293 -8
- package/src/scripts/mkd.js +287 -7
- package/src/scripts/ncu-update-all.js +441 -8
- package/src/scripts/nginx-init.js +702 -12
- package/src/scripts/npmi.js +366 -7
- package/src/scripts/o.js +495 -8
- package/src/scripts/org-by-date.js +321 -7
- package/src/scripts/p.js +208 -7
- package/src/scripts/packages.js +313 -8
- package/src/scripts/path.js +209 -7
- package/src/scripts/ports.js +582 -8
- package/src/scripts/q.js +290 -8
- package/src/scripts/refresh-files.js +378 -10
- package/src/scripts/remove-smaller-files.js +500 -8
- package/src/scripts/rename-files-with-date.js +517 -9
- package/src/scripts/resize-image.js +523 -9
- package/src/scripts/rm-safe.js +653 -8
- package/src/scripts/s.js +525 -9
- package/src/scripts/set-git-public.js +349 -7
- package/src/scripts/show-desktop-icons.js +459 -7
- package/src/scripts/show-hidden-files.js +456 -7
- package/src/scripts/tpa.js +265 -8
- package/src/scripts/tpo.js +264 -7
- package/src/scripts/u.js +489 -7
- package/src/scripts/vpush.js +422 -8
- package/src/scripts/y.js +267 -7
- package/src/utils/common/os.js +94 -2
- package/src/utils/ubuntu/apt.js +13 -7
- package/src/utils/windows/choco.js +82 -26
- package/src/utils/windows/winget.js +89 -27
|
@@ -0,0 +1,1100 @@
|
|
|
1
|
+
# Installing Tailscale
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Tailscale is a zero-configuration VPN service built on WireGuard that creates secure mesh networks (called tailnets) between your devices. It eliminates the complexity of traditional VPN setup by handling authentication, key exchange, and NAT traversal automatically. Tailscale is ideal for:
|
|
6
|
+
|
|
7
|
+
- **Remote access**: Securely connect to your home or office devices from anywhere
|
|
8
|
+
- **Developer environments**: Access development servers, databases, and services without exposing them to the public internet
|
|
9
|
+
- **Team networking**: Connect distributed teams with shared access to internal resources
|
|
10
|
+
- **IoT and home automation**: Securely reach Raspberry Pi devices, NAS systems, and smart home servers
|
|
11
|
+
|
|
12
|
+
Tailscale provides both GUI applications (for desktop platforms) and CLI-only daemons (for servers and headless systems).
|
|
13
|
+
|
|
14
|
+
## Prerequisites
|
|
15
|
+
|
|
16
|
+
Before installing Tailscale on any platform, ensure:
|
|
17
|
+
|
|
18
|
+
1. **Internet connectivity** - Required to download packages and authenticate with Tailscale
|
|
19
|
+
2. **Administrative privileges** - Required for system-wide installation and network configuration
|
|
20
|
+
3. **A Tailscale account** - Free tier supports up to 100 devices; sign up at https://tailscale.com
|
|
21
|
+
4. **curl** - Required on Linux platforms for the installation script
|
|
22
|
+
|
|
23
|
+
## Dependencies
|
|
24
|
+
|
|
25
|
+
### macOS (Homebrew)
|
|
26
|
+
- **Required:**
|
|
27
|
+
- `Homebrew` - Install via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
|
|
28
|
+
- **Optional:** None
|
|
29
|
+
- **Auto-installed:** None
|
|
30
|
+
|
|
31
|
+
### Ubuntu (APT/Snap)
|
|
32
|
+
- **Required:**
|
|
33
|
+
- `curl` - Install via `sudo apt-get install -y curl` (will be installed automatically if missing)
|
|
34
|
+
- **Optional:** None
|
|
35
|
+
- **Auto-installed:**
|
|
36
|
+
- GPG signing key (added by install script)
|
|
37
|
+
- APT repository configuration (added by install script)
|
|
38
|
+
- `tailscale` package dependencies (handled by APT)
|
|
39
|
+
|
|
40
|
+
### Raspberry Pi OS (APT/Snap)
|
|
41
|
+
- **Required:**
|
|
42
|
+
- `curl` - Install via `sudo apt-get install -y curl` (will be installed automatically if missing)
|
|
43
|
+
- **Optional:** None
|
|
44
|
+
- **Auto-installed:**
|
|
45
|
+
- GPG signing key (added by install script)
|
|
46
|
+
- APT repository configuration (added by install script)
|
|
47
|
+
- `tailscale` package dependencies (handled by APT)
|
|
48
|
+
|
|
49
|
+
### Amazon Linux (DNF/YUM)
|
|
50
|
+
- **Required:**
|
|
51
|
+
- `curl` - Install via `sudo dnf install -y curl` or `sudo yum install -y curl` (required for install script)
|
|
52
|
+
- **Optional:**
|
|
53
|
+
- `yum-utils` - Install via `sudo yum install -y yum-utils` (provides yum-config-manager for manual repository setup; only needed for YUM-based systems like AL2)
|
|
54
|
+
- **Auto-installed:**
|
|
55
|
+
- Repository configuration (added by install script or dnf/yum-config-manager)
|
|
56
|
+
- `tailscale` package dependencies (handled by DNF/YUM)
|
|
57
|
+
- systemd service configuration
|
|
58
|
+
|
|
59
|
+
### Windows (Chocolatey/winget)
|
|
60
|
+
- **Required:**
|
|
61
|
+
- `Chocolatey` - Install via PowerShell: `Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))`
|
|
62
|
+
- **Optional:**
|
|
63
|
+
- `winget` - Alternative package manager (pre-installed on Windows 11 and recent Windows 10)
|
|
64
|
+
- **Auto-installed:** None
|
|
65
|
+
|
|
66
|
+
### Git Bash (Manual/Portable)
|
|
67
|
+
- **Required:**
|
|
68
|
+
- `Chocolatey` on Windows host - Install via PowerShell (see Windows section above)
|
|
69
|
+
- Tailscale installed on Windows host (Git Bash inherits Windows PATH)
|
|
70
|
+
- **Optional:** None
|
|
71
|
+
- **Auto-installed:** None
|
|
72
|
+
|
|
73
|
+
## Platform-Specific Installation
|
|
74
|
+
|
|
75
|
+
### macOS (Homebrew)
|
|
76
|
+
|
|
77
|
+
#### Prerequisites
|
|
78
|
+
|
|
79
|
+
- macOS 12.0 (Monterey) or later
|
|
80
|
+
- Homebrew package manager installed
|
|
81
|
+
- Apple Silicon (M1/M2/M3/M4) or Intel processor
|
|
82
|
+
|
|
83
|
+
If Homebrew is not installed, install it first:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Important**: There are three ways to run Tailscale on macOS. This guide documents the CLI-only Homebrew installation, which is recommended for servers and advanced users who prefer command-line management. For desktop use with a GUI, download the Standalone variant from https://tailscale.com/download instead.
|
|
90
|
+
|
|
91
|
+
#### Installation Steps
|
|
92
|
+
|
|
93
|
+
Run the following command to install the Tailscale CLI:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
brew install --quiet tailscale
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
The `--quiet` flag suppresses non-essential output for cleaner automation logs.
|
|
100
|
+
|
|
101
|
+
Start the Tailscale daemon as a background service:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
sudo brew services start tailscale
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Note**: The `sudo` prefix is required because Tailscale needs root privileges to configure network interfaces.
|
|
108
|
+
|
|
109
|
+
Connect to your Tailscale network:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
sudo tailscale up
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
This command outputs an authentication URL. Open the URL in your browser to authenticate with your Tailscale account.
|
|
116
|
+
|
|
117
|
+
#### Verification
|
|
118
|
+
|
|
119
|
+
Confirm the installation succeeded:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
tailscale --version
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Expected output (version numbers may vary):
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
1.92.3
|
|
129
|
+
tailscale commit: abcdef1234567890
|
|
130
|
+
other commit: 1234567890abcdef
|
|
131
|
+
go version: go1.25.5
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Verify your Tailscale IP address:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
tailscale ip -4
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Check connection status:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
tailscale status
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
#### Troubleshooting
|
|
147
|
+
|
|
148
|
+
**Problem**: `tailscale: command not found` after installation
|
|
149
|
+
|
|
150
|
+
**Solution**: The Homebrew binary path may not be in your PATH. Add it:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
|
|
154
|
+
source ~/.zprofile
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**Problem**: "cannot connect to local Tailscale daemon" error
|
|
158
|
+
|
|
159
|
+
**Solution**: The tailscaled service is not running. Start it:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
sudo brew services start tailscale
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Problem**: Authentication URL not appearing
|
|
166
|
+
|
|
167
|
+
**Solution**: Check if tailscaled is running and try again:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
sudo brew services restart tailscale
|
|
171
|
+
sudo tailscale up
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Problem**: Conflict with GUI Tailscale app
|
|
175
|
+
|
|
176
|
+
**Solution**: Do not install both the Homebrew CLI version and the GUI app (Standalone or Mac App Store). They conflict with each other. Choose one:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
# If switching from GUI to CLI, first quit and delete the Tailscale app
|
|
180
|
+
# Then empty Trash and reboot before installing via Homebrew
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
### Ubuntu/Debian (APT)
|
|
186
|
+
|
|
187
|
+
#### Prerequisites
|
|
188
|
+
|
|
189
|
+
- Ubuntu 18.04 (Bionic) or later, or Debian 10 (Buster) or later (64-bit or 32-bit)
|
|
190
|
+
- sudo privileges
|
|
191
|
+
- curl installed
|
|
192
|
+
|
|
193
|
+
If curl is not installed:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
197
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
#### Installation Steps
|
|
201
|
+
|
|
202
|
+
**Step 1: Run the official installation script**
|
|
203
|
+
|
|
204
|
+
Tailscale provides an automated installation script that detects your distribution and adds the appropriate repository:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
curl -fsSL https://tailscale.com/install.sh | sh
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
This script automatically:
|
|
211
|
+
- Detects your Ubuntu/Debian version
|
|
212
|
+
- Adds Tailscale's GPG signing key
|
|
213
|
+
- Configures the APT repository
|
|
214
|
+
- Installs the tailscale package
|
|
215
|
+
- Enables and starts the tailscaled service
|
|
216
|
+
|
|
217
|
+
**Step 2: Connect to your Tailscale network**
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
sudo tailscale up
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
This command outputs an authentication URL. Open the URL in your browser to authenticate with your Tailscale account.
|
|
224
|
+
|
|
225
|
+
#### Manual Installation (Alternative)
|
|
226
|
+
|
|
227
|
+
If you prefer not to use the installation script, add the repository manually.
|
|
228
|
+
|
|
229
|
+
**For Ubuntu (example using 24.04 Noble):**
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# Add Tailscale's GPG key
|
|
233
|
+
sudo mkdir -p --mode=0755 /usr/share/keyrings
|
|
234
|
+
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
|
|
235
|
+
|
|
236
|
+
# Add the repository
|
|
237
|
+
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
|
|
238
|
+
|
|
239
|
+
# Install Tailscale
|
|
240
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
241
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tailscale
|
|
242
|
+
|
|
243
|
+
# Connect to your network
|
|
244
|
+
sudo tailscale up
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**Note**: Replace `noble` with your Ubuntu codename. Find yours with `lsb_release -cs`. Common codenames: `focal` (20.04), `jammy` (22.04), `noble` (24.04).
|
|
248
|
+
|
|
249
|
+
**For Debian (example using Bookworm):**
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
# Add Tailscale's GPG key
|
|
253
|
+
sudo mkdir -p --mode=0755 /usr/share/keyrings
|
|
254
|
+
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
|
|
255
|
+
|
|
256
|
+
# Add the repository
|
|
257
|
+
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
|
|
258
|
+
|
|
259
|
+
# Install Tailscale
|
|
260
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
261
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tailscale
|
|
262
|
+
|
|
263
|
+
# Connect to your network
|
|
264
|
+
sudo tailscale up
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**Note**: Replace `bookworm` with your Debian codename. Common codenames: `buster` (10), `bullseye` (11), `bookworm` (12), `trixie` (13).
|
|
268
|
+
|
|
269
|
+
#### Verification
|
|
270
|
+
|
|
271
|
+
Confirm the installation succeeded:
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
tailscale --version
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Verify your Tailscale IP address:
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
tailscale ip -4
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Check connection status:
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
tailscale status
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
Verify the service is running:
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
sudo systemctl status tailscaled
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
#### Troubleshooting
|
|
296
|
+
|
|
297
|
+
**Problem**: GPG key import fails
|
|
298
|
+
|
|
299
|
+
**Solution**: Ensure curl and ca-certificates are installed:
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates curl gnupg
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
**Problem**: "Unable to locate package tailscale"
|
|
306
|
+
|
|
307
|
+
**Solution**: The repository was not added correctly. Verify the list file exists and contains the correct URL:
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
cat /etc/apt/sources.list.d/tailscale.list
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Re-run the installation script if the file is missing or incorrect.
|
|
314
|
+
|
|
315
|
+
**Problem**: tailscaled service not running
|
|
316
|
+
|
|
317
|
+
**Solution**: Start and enable the service:
|
|
318
|
+
|
|
319
|
+
```bash
|
|
320
|
+
sudo systemctl enable --now tailscaled
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**Problem**: DNS resolution issues after installation
|
|
324
|
+
|
|
325
|
+
**Solution**: Tailscale manages DNS for MagicDNS features. If you experience issues with non-Tailscale DNS, you can disable MagicDNS in the Tailscale admin console or run:
|
|
326
|
+
|
|
327
|
+
```bash
|
|
328
|
+
sudo tailscale set --accept-dns=false
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
### Raspberry Pi OS (APT)
|
|
334
|
+
|
|
335
|
+
#### Prerequisites
|
|
336
|
+
|
|
337
|
+
- Raspberry Pi OS (32-bit or 64-bit) - Bullseye, Bookworm, or newer recommended
|
|
338
|
+
- Raspberry Pi 3, 4, or 5 (64-bit capable hardware recommended)
|
|
339
|
+
- sudo privileges
|
|
340
|
+
- curl installed
|
|
341
|
+
|
|
342
|
+
Verify your architecture to understand which packages will be used:
|
|
343
|
+
|
|
344
|
+
```bash
|
|
345
|
+
uname -m
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
- `aarch64` = 64-bit (uses Debian arm64 packages)
|
|
349
|
+
- `armv7l` = 32-bit (uses Raspbian-specific packages)
|
|
350
|
+
|
|
351
|
+
If curl is not installed:
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
355
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
#### Installation Steps
|
|
359
|
+
|
|
360
|
+
**Step 1: Run the official installation script**
|
|
361
|
+
|
|
362
|
+
```bash
|
|
363
|
+
curl -fsSL https://tailscale.com/install.sh | sh
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
The script automatically detects Raspberry Pi OS and configures the appropriate repository for your architecture.
|
|
367
|
+
|
|
368
|
+
**Step 2: Connect to your Tailscale network**
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
sudo tailscale up
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
This command outputs an authentication URL. Open the URL in your browser (on any device) to authenticate with your Tailscale account.
|
|
375
|
+
|
|
376
|
+
#### Manual Installation (Alternative)
|
|
377
|
+
|
|
378
|
+
If you prefer manual installation:
|
|
379
|
+
|
|
380
|
+
**For 64-bit Raspberry Pi OS (aarch64):**
|
|
381
|
+
|
|
382
|
+
```bash
|
|
383
|
+
# Add Tailscale's GPG key
|
|
384
|
+
sudo mkdir -p --mode=0755 /usr/share/keyrings
|
|
385
|
+
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
|
|
386
|
+
|
|
387
|
+
# Add the repository (uses Debian arm64 packages)
|
|
388
|
+
curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
|
|
389
|
+
|
|
390
|
+
# Install Tailscale
|
|
391
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
392
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tailscale
|
|
393
|
+
|
|
394
|
+
# Connect to your network
|
|
395
|
+
sudo tailscale up
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
**For 32-bit Raspberry Pi OS (armv7l):**
|
|
399
|
+
|
|
400
|
+
```bash
|
|
401
|
+
# Add Tailscale's GPG key (using legacy apt-key for older Raspbian)
|
|
402
|
+
curl -fsSL https://pkgs.tailscale.com/stable/raspbian/bookworm.gpg | sudo apt-key add -
|
|
403
|
+
|
|
404
|
+
# Add the repository
|
|
405
|
+
curl -fsSL https://pkgs.tailscale.com/stable/raspbian/bookworm.list | sudo tee /etc/apt/sources.list.d/tailscale.list
|
|
406
|
+
|
|
407
|
+
# Install Tailscale
|
|
408
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
409
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tailscale
|
|
410
|
+
|
|
411
|
+
# Connect to your network
|
|
412
|
+
sudo tailscale up
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
**Note**: Replace `bookworm` with your Raspberry Pi OS codename. Find yours with `cat /etc/os-release | grep VERSION_CODENAME`. Common codenames: `buster` (Raspbian 10), `bullseye` (Raspberry Pi OS 11), `bookworm` (Raspberry Pi OS 12).
|
|
416
|
+
|
|
417
|
+
#### Disabling Key Expiry for Always-On Devices
|
|
418
|
+
|
|
419
|
+
Raspberry Pis often run as always-on servers. By default, Tailscale keys expire after 180 days, requiring re-authentication. For headless devices, disable key expiry in the Tailscale admin console:
|
|
420
|
+
|
|
421
|
+
1. Go to https://login.tailscale.com/admin/machines
|
|
422
|
+
2. Find your Raspberry Pi in the list
|
|
423
|
+
3. Click the three-dot menu and select "Disable key expiry"
|
|
424
|
+
|
|
425
|
+
**Security Warning**: Disabling key expiry reduces security. Only use this for trusted devices and revoke the key immediately if the device is lost or compromised.
|
|
426
|
+
|
|
427
|
+
#### Verification
|
|
428
|
+
|
|
429
|
+
Confirm the installation succeeded:
|
|
430
|
+
|
|
431
|
+
```bash
|
|
432
|
+
tailscale --version
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Verify your Tailscale IP address:
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
tailscale ip -4
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
Check connection status:
|
|
442
|
+
|
|
443
|
+
```bash
|
|
444
|
+
tailscale status
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
#### Troubleshooting
|
|
448
|
+
|
|
449
|
+
**Problem**: Slow installation or downloads
|
|
450
|
+
|
|
451
|
+
**Solution**: Raspberry Pi SD cards can be slow. Consider using a high-quality Class 10 or faster SD card, or boot from USB/SSD.
|
|
452
|
+
|
|
453
|
+
**Problem**: apt-key deprecation warning on newer systems
|
|
454
|
+
|
|
455
|
+
**Solution**: Use the keyring method instead of apt-key (as shown in the 64-bit instructions). The installation script handles this automatically.
|
|
456
|
+
|
|
457
|
+
**Problem**: Cannot reach other Tailscale devices
|
|
458
|
+
|
|
459
|
+
**Solution**: Verify the tailscaled service is running:
|
|
460
|
+
|
|
461
|
+
```bash
|
|
462
|
+
sudo systemctl status tailscaled
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
If not running, start it:
|
|
466
|
+
|
|
467
|
+
```bash
|
|
468
|
+
sudo systemctl enable --now tailscaled
|
|
469
|
+
sudo tailscale up
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
**Problem**: Raspberry Pi loses Tailscale connection after reboot
|
|
473
|
+
|
|
474
|
+
**Solution**: Ensure tailscaled starts at boot:
|
|
475
|
+
|
|
476
|
+
```bash
|
|
477
|
+
sudo systemctl enable tailscaled
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
### Amazon Linux/RHEL (DNF/YUM)
|
|
483
|
+
|
|
484
|
+
#### Prerequisites
|
|
485
|
+
|
|
486
|
+
- Amazon Linux 2023, Amazon Linux 2, RHEL 7/8/9, or CentOS 7/8/9
|
|
487
|
+
- sudo privileges
|
|
488
|
+
|
|
489
|
+
**Note**: Amazon Linux 2023 uses DNF as the package manager. Amazon Linux 2, RHEL 7, and CentOS 7 use YUM. The commands below specify which package manager to use.
|
|
490
|
+
|
|
491
|
+
#### Installation Steps
|
|
492
|
+
|
|
493
|
+
**Option A: Use the official installation script (Recommended)**
|
|
494
|
+
|
|
495
|
+
```bash
|
|
496
|
+
curl -fsSL https://tailscale.com/install.sh | sh
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
The script automatically detects your distribution and version, then configures the appropriate repository.
|
|
500
|
+
|
|
501
|
+
After installation, connect to your Tailscale network:
|
|
502
|
+
|
|
503
|
+
```bash
|
|
504
|
+
sudo tailscale up
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
**Option B: Manual installation**
|
|
508
|
+
|
|
509
|
+
**For Amazon Linux 2023 (DNF):**
|
|
510
|
+
|
|
511
|
+
```bash
|
|
512
|
+
# Add Tailscale repository
|
|
513
|
+
sudo dnf config-manager --add-repo https://pkgs.tailscale.com/stable/amazon-linux/2023/tailscale.repo
|
|
514
|
+
|
|
515
|
+
# Install Tailscale
|
|
516
|
+
sudo dnf install -y tailscale
|
|
517
|
+
|
|
518
|
+
# Enable and start the service
|
|
519
|
+
sudo systemctl enable --now tailscaled
|
|
520
|
+
|
|
521
|
+
# Connect to your network
|
|
522
|
+
sudo tailscale up
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
**For Amazon Linux 2 (YUM):**
|
|
526
|
+
|
|
527
|
+
```bash
|
|
528
|
+
# Install yum-utils if not present
|
|
529
|
+
sudo yum install -y yum-utils
|
|
530
|
+
|
|
531
|
+
# Add Tailscale repository
|
|
532
|
+
sudo yum-config-manager --add-repo https://pkgs.tailscale.com/stable/amazon-linux/2/tailscale.repo
|
|
533
|
+
|
|
534
|
+
# Install Tailscale
|
|
535
|
+
sudo yum install -y tailscale
|
|
536
|
+
|
|
537
|
+
# Enable and start the service
|
|
538
|
+
sudo systemctl enable --now tailscaled
|
|
539
|
+
|
|
540
|
+
# Connect to your network
|
|
541
|
+
sudo tailscale up
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
**For RHEL 8/9 or CentOS 8/9 (DNF):**
|
|
545
|
+
|
|
546
|
+
```bash
|
|
547
|
+
# Add Tailscale repository (replace 9 with your version: 7, 8, or 9)
|
|
548
|
+
sudo dnf config-manager --add-repo https://pkgs.tailscale.com/stable/rhel/9/tailscale.repo
|
|
549
|
+
|
|
550
|
+
# Install Tailscale
|
|
551
|
+
sudo dnf install -y tailscale
|
|
552
|
+
|
|
553
|
+
# Enable and start the service
|
|
554
|
+
sudo systemctl enable --now tailscaled
|
|
555
|
+
|
|
556
|
+
# Connect to your network
|
|
557
|
+
sudo tailscale up
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
**For RHEL 7 or CentOS 7 (YUM):**
|
|
561
|
+
|
|
562
|
+
```bash
|
|
563
|
+
# Install yum-utils if not present
|
|
564
|
+
sudo yum install -y yum-utils
|
|
565
|
+
|
|
566
|
+
# Add Tailscale repository
|
|
567
|
+
sudo yum-config-manager --add-repo https://pkgs.tailscale.com/stable/rhel/7/tailscale.repo
|
|
568
|
+
|
|
569
|
+
# Install Tailscale
|
|
570
|
+
sudo yum install -y tailscale
|
|
571
|
+
|
|
572
|
+
# Enable and start the service
|
|
573
|
+
sudo systemctl enable --now tailscaled
|
|
574
|
+
|
|
575
|
+
# Connect to your network
|
|
576
|
+
sudo tailscale up
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
#### Verification
|
|
580
|
+
|
|
581
|
+
Confirm the installation succeeded:
|
|
582
|
+
|
|
583
|
+
```bash
|
|
584
|
+
tailscale --version
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
Verify your Tailscale IP address:
|
|
588
|
+
|
|
589
|
+
```bash
|
|
590
|
+
tailscale ip -4
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
Check connection status:
|
|
594
|
+
|
|
595
|
+
```bash
|
|
596
|
+
tailscale status
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
Verify the service is running:
|
|
600
|
+
|
|
601
|
+
```bash
|
|
602
|
+
sudo systemctl status tailscaled
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
#### Troubleshooting
|
|
606
|
+
|
|
607
|
+
**Problem**: "No package tailscale available"
|
|
608
|
+
|
|
609
|
+
**Solution**: The repository was not added correctly. Verify it exists:
|
|
610
|
+
|
|
611
|
+
```bash
|
|
612
|
+
ls /etc/yum.repos.d/ | grep tailscale
|
|
613
|
+
cat /etc/yum.repos.d/tailscale.repo
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
Re-add the repository if missing.
|
|
617
|
+
|
|
618
|
+
**Problem**: Repository GPG key verification fails
|
|
619
|
+
|
|
620
|
+
**Solution**: Import the GPG key manually:
|
|
621
|
+
|
|
622
|
+
```bash
|
|
623
|
+
sudo rpm --import https://pkgs.tailscale.com/stable/rhel/repo.gpg
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
**Problem**: SELinux blocking Tailscale
|
|
627
|
+
|
|
628
|
+
**Solution**: On RHEL/CentOS with SELinux enforcing, you may need to allow Tailscale:
|
|
629
|
+
|
|
630
|
+
```bash
|
|
631
|
+
sudo setsebool -P tailscaled_use_all_interfaces 1
|
|
632
|
+
```
|
|
633
|
+
|
|
634
|
+
Or temporarily set SELinux to permissive to diagnose:
|
|
635
|
+
|
|
636
|
+
```bash
|
|
637
|
+
sudo setenforce 0
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
**Problem**: firewalld blocking Tailscale traffic
|
|
641
|
+
|
|
642
|
+
**Solution**: Tailscale should work with firewalld, but if you have issues:
|
|
643
|
+
|
|
644
|
+
```bash
|
|
645
|
+
sudo firewall-cmd --zone=trusted --add-interface=tailscale0 --permanent
|
|
646
|
+
sudo firewall-cmd --reload
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
---
|
|
650
|
+
|
|
651
|
+
### Windows (Chocolatey)
|
|
652
|
+
|
|
653
|
+
#### Prerequisites
|
|
654
|
+
|
|
655
|
+
- Windows 10 or later, or Windows Server 2016 or later (64-bit)
|
|
656
|
+
- Administrator PowerShell or Command Prompt
|
|
657
|
+
- Chocolatey package manager installed
|
|
658
|
+
|
|
659
|
+
If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
|
|
660
|
+
|
|
661
|
+
```powershell
|
|
662
|
+
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
|
|
663
|
+
```
|
|
664
|
+
|
|
665
|
+
#### Installation Steps
|
|
666
|
+
|
|
667
|
+
Run the following command in an Administrator PowerShell or Command Prompt:
|
|
668
|
+
|
|
669
|
+
```powershell
|
|
670
|
+
choco install tailscale -y
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation.
|
|
674
|
+
|
|
675
|
+
After installation, Tailscale will be available in your Start Menu. Launch it to complete the setup.
|
|
676
|
+
|
|
677
|
+
Alternatively, connect from the command line:
|
|
678
|
+
|
|
679
|
+
```powershell
|
|
680
|
+
tailscale up
|
|
681
|
+
```
|
|
682
|
+
|
|
683
|
+
This opens your default browser to authenticate with your Tailscale account.
|
|
684
|
+
|
|
685
|
+
#### Alternative: winget Installation
|
|
686
|
+
|
|
687
|
+
If you prefer winget over Chocolatey:
|
|
688
|
+
|
|
689
|
+
```powershell
|
|
690
|
+
winget install --id Tailscale.Tailscale --silent --accept-package-agreements --accept-source-agreements
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
#### Verification
|
|
694
|
+
|
|
695
|
+
Open a new Command Prompt or PowerShell window, then run:
|
|
696
|
+
|
|
697
|
+
```powershell
|
|
698
|
+
tailscale --version
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
Expected output (version numbers may vary):
|
|
702
|
+
|
|
703
|
+
```
|
|
704
|
+
1.92.3
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
Verify your Tailscale IP address:
|
|
708
|
+
|
|
709
|
+
```powershell
|
|
710
|
+
tailscale ip -4
|
|
711
|
+
```
|
|
712
|
+
|
|
713
|
+
Check connection status:
|
|
714
|
+
|
|
715
|
+
```powershell
|
|
716
|
+
tailscale status
|
|
717
|
+
```
|
|
718
|
+
|
|
719
|
+
#### Troubleshooting
|
|
720
|
+
|
|
721
|
+
**Problem**: `tailscale: The term 'tailscale' is not recognized`
|
|
722
|
+
|
|
723
|
+
**Solution**: Close and reopen your terminal to pick up PATH changes. If the problem persists, Tailscale may not be in your PATH. Add it manually:
|
|
724
|
+
|
|
725
|
+
```powershell
|
|
726
|
+
$env:Path += ";C:\Program Files\Tailscale"
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
Or add permanently via System Properties > Environment Variables.
|
|
730
|
+
|
|
731
|
+
**Problem**: Tailscale service not running
|
|
732
|
+
|
|
733
|
+
**Solution**: Start the Tailscale service:
|
|
734
|
+
|
|
735
|
+
```powershell
|
|
736
|
+
Start-Service Tailscale
|
|
737
|
+
```
|
|
738
|
+
|
|
739
|
+
Or start the Tailscale GUI application from the Start Menu.
|
|
740
|
+
|
|
741
|
+
**Problem**: VPN conflicts with other software
|
|
742
|
+
|
|
743
|
+
**Solution**: Tailscale is designed to coexist with most VPNs, but some corporate VPN clients may conflict. Contact your IT department or consult Tailscale's documentation for compatibility information.
|
|
744
|
+
|
|
745
|
+
**Problem**: winget downloads wrong architecture
|
|
746
|
+
|
|
747
|
+
**Solution**: This is a known winget issue. Use Chocolatey instead, or download the MSI installer directly from https://pkgs.tailscale.com/stable/#windows and specify the correct architecture (amd64 for 64-bit).
|
|
748
|
+
|
|
749
|
+
---
|
|
750
|
+
|
|
751
|
+
### WSL (Ubuntu)
|
|
752
|
+
|
|
753
|
+
#### Prerequisites
|
|
754
|
+
|
|
755
|
+
- Windows 10 version 2004 or later, or Windows 11
|
|
756
|
+
- WSL 2 installed and configured (WSL 1 is not supported)
|
|
757
|
+
- Ubuntu distribution installed in WSL
|
|
758
|
+
|
|
759
|
+
Verify you are on WSL 2:
|
|
760
|
+
|
|
761
|
+
```powershell
|
|
762
|
+
wsl -l -v
|
|
763
|
+
```
|
|
764
|
+
|
|
765
|
+
The VERSION column should show `2` for your Ubuntu distribution.
|
|
766
|
+
|
|
767
|
+
**Important Recommendation**: If you need Tailscale on both Windows and WSL, install Tailscale on the Windows host only (see Windows section). The Windows Tailscale client provides network access that is visible to WSL 2 automatically. Running Tailscale in both Windows and WSL simultaneously can cause conflicts.
|
|
768
|
+
|
|
769
|
+
#### Installation Steps
|
|
770
|
+
|
|
771
|
+
If you specifically need Tailscale running inside WSL (not recommended for most users), follow these steps.
|
|
772
|
+
|
|
773
|
+
**Step 1: Install Tailscale in WSL**
|
|
774
|
+
|
|
775
|
+
Open your WSL Ubuntu terminal and run:
|
|
776
|
+
|
|
777
|
+
```bash
|
|
778
|
+
curl -fsSL https://tailscale.com/install.sh | sh
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
**Step 2: Start the Tailscale daemon**
|
|
782
|
+
|
|
783
|
+
WSL does not use systemd by default, so Tailscale cannot run as a service. Start it manually:
|
|
784
|
+
|
|
785
|
+
```bash
|
|
786
|
+
sudo tailscaled &
|
|
787
|
+
```
|
|
788
|
+
|
|
789
|
+
Wait a few seconds for the daemon to initialize, then connect:
|
|
790
|
+
|
|
791
|
+
```bash
|
|
792
|
+
sudo tailscale up
|
|
793
|
+
```
|
|
794
|
+
|
|
795
|
+
This outputs an authentication URL. Copy it and open in your browser to authenticate.
|
|
796
|
+
|
|
797
|
+
#### Starting Tailscale Automatically in WSL
|
|
798
|
+
|
|
799
|
+
Since WSL does not support systemd, add this to your `~/.bashrc` to start Tailscale when you open a WSL terminal:
|
|
800
|
+
|
|
801
|
+
```bash
|
|
802
|
+
# Start tailscaled if not already running
|
|
803
|
+
if ! pgrep -x tailscaled > /dev/null; then
|
|
804
|
+
sudo tailscaled > /dev/null 2>&1 &
|
|
805
|
+
sleep 2
|
|
806
|
+
fi
|
|
807
|
+
```
|
|
808
|
+
|
|
809
|
+
Configure passwordless sudo for tailscaled (to avoid password prompts):
|
|
810
|
+
|
|
811
|
+
```bash
|
|
812
|
+
echo "$USER ALL=(ALL) NOPASSWD: /usr/sbin/tailscaled" | sudo tee /etc/sudoers.d/tailscaled
|
|
813
|
+
sudo chmod 0440 /etc/sudoers.d/tailscaled
|
|
814
|
+
```
|
|
815
|
+
|
|
816
|
+
#### Verification
|
|
817
|
+
|
|
818
|
+
Confirm the installation succeeded:
|
|
819
|
+
|
|
820
|
+
```bash
|
|
821
|
+
tailscale --version
|
|
822
|
+
```
|
|
823
|
+
|
|
824
|
+
Verify your Tailscale IP address:
|
|
825
|
+
|
|
826
|
+
```bash
|
|
827
|
+
tailscale ip -4
|
|
828
|
+
```
|
|
829
|
+
|
|
830
|
+
Check connection status:
|
|
831
|
+
|
|
832
|
+
```bash
|
|
833
|
+
tailscale status
|
|
834
|
+
```
|
|
835
|
+
|
|
836
|
+
#### Troubleshooting
|
|
837
|
+
|
|
838
|
+
**Problem**: "cannot connect to local Tailscale daemon"
|
|
839
|
+
|
|
840
|
+
**Solution**: The tailscaled process is not running. Start it:
|
|
841
|
+
|
|
842
|
+
```bash
|
|
843
|
+
sudo tailscaled &
|
|
844
|
+
sleep 2
|
|
845
|
+
sudo tailscale up
|
|
846
|
+
```
|
|
847
|
+
|
|
848
|
+
**Problem**: DNS resolution broken after installing Tailscale
|
|
849
|
+
|
|
850
|
+
**Solution**: Tailscale modifies `/etc/resolv.conf` for MagicDNS. If this breaks regular DNS, disable Tailscale DNS:
|
|
851
|
+
|
|
852
|
+
```bash
|
|
853
|
+
sudo tailscale set --accept-dns=false
|
|
854
|
+
```
|
|
855
|
+
|
|
856
|
+
Or manually restore `/etc/resolv.conf`:
|
|
857
|
+
|
|
858
|
+
```bash
|
|
859
|
+
sudo rm /etc/resolv.conf
|
|
860
|
+
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
|
|
861
|
+
```
|
|
862
|
+
|
|
863
|
+
**Problem**: Encrypted traffic fails when Tailscale runs on both Windows and WSL
|
|
864
|
+
|
|
865
|
+
**Solution**: This is expected behavior. Tailscale should run on the Windows host only, not in WSL. Uninstall from WSL:
|
|
866
|
+
|
|
867
|
+
```bash
|
|
868
|
+
sudo apt-get remove -y tailscale
|
|
869
|
+
```
|
|
870
|
+
|
|
871
|
+
Then use the Windows Tailscale client.
|
|
872
|
+
|
|
873
|
+
**Problem**: MTU-related connectivity issues
|
|
874
|
+
|
|
875
|
+
**Solution**: WSL 2 has a default MTU of 1280 which is too small for Tailscale. The tailscaled daemon should raise it automatically, but if issues persist:
|
|
876
|
+
|
|
877
|
+
```bash
|
|
878
|
+
sudo ip link set dev eth0 mtu 1340
|
|
879
|
+
```
|
|
880
|
+
|
|
881
|
+
---
|
|
882
|
+
|
|
883
|
+
### Git Bash (Windows Installation)
|
|
884
|
+
|
|
885
|
+
#### Prerequisites
|
|
886
|
+
|
|
887
|
+
- Windows 10 or Windows 11 (64-bit)
|
|
888
|
+
- Git Bash installed (comes with Git for Windows)
|
|
889
|
+
- Tailscale installed on Windows (see Windows section)
|
|
890
|
+
|
|
891
|
+
**Note**: Git Bash on Windows does not require a separate Tailscale installation. Git Bash inherits the Windows PATH, so once Tailscale is installed on Windows, the `tailscale` command is automatically available in Git Bash.
|
|
892
|
+
|
|
893
|
+
#### Installation Steps
|
|
894
|
+
|
|
895
|
+
1. Install Tailscale on Windows using Chocolatey (see Windows section):
|
|
896
|
+
|
|
897
|
+
```bash
|
|
898
|
+
# Run from Administrator PowerShell or Command Prompt
|
|
899
|
+
choco install tailscale -y
|
|
900
|
+
```
|
|
901
|
+
|
|
902
|
+
2. Start Tailscale from the Windows Start Menu or system tray
|
|
903
|
+
|
|
904
|
+
3. Open Git Bash - the `tailscale` command will be available
|
|
905
|
+
|
|
906
|
+
#### Verification
|
|
907
|
+
|
|
908
|
+
In Git Bash, confirm Tailscale is accessible:
|
|
909
|
+
|
|
910
|
+
```bash
|
|
911
|
+
tailscale --version
|
|
912
|
+
```
|
|
913
|
+
|
|
914
|
+
Expected output (version numbers may vary):
|
|
915
|
+
|
|
916
|
+
```
|
|
917
|
+
1.92.3
|
|
918
|
+
```
|
|
919
|
+
|
|
920
|
+
Verify your Tailscale IP address:
|
|
921
|
+
|
|
922
|
+
```bash
|
|
923
|
+
tailscale ip -4
|
|
924
|
+
```
|
|
925
|
+
|
|
926
|
+
Check connection status:
|
|
927
|
+
|
|
928
|
+
```bash
|
|
929
|
+
tailscale status
|
|
930
|
+
```
|
|
931
|
+
|
|
932
|
+
#### Troubleshooting
|
|
933
|
+
|
|
934
|
+
**Problem**: `tailscale: command not found` in Git Bash
|
|
935
|
+
|
|
936
|
+
**Solution**: The Tailscale path may not be inherited. Add it to your `~/.bashrc`:
|
|
937
|
+
|
|
938
|
+
```bash
|
|
939
|
+
echo 'export PATH="$PATH:/c/Program Files/Tailscale"' >> ~/.bashrc
|
|
940
|
+
source ~/.bashrc
|
|
941
|
+
```
|
|
942
|
+
|
|
943
|
+
**Problem**: Tailscale commands hang or timeout
|
|
944
|
+
|
|
945
|
+
**Solution**: Ensure the Tailscale Windows service is running. Check the system tray for the Tailscale icon. If not present, start Tailscale from the Start Menu.
|
|
946
|
+
|
|
947
|
+
**Problem**: Interactive prompts fail in Git Bash
|
|
948
|
+
|
|
949
|
+
**Solution**: Some Tailscale commands may not work interactively in Git Bash's mintty terminal. Use Windows Command Prompt or PowerShell for those operations, or prefix with `winpty`:
|
|
950
|
+
|
|
951
|
+
```bash
|
|
952
|
+
winpty tailscale login
|
|
953
|
+
```
|
|
954
|
+
|
|
955
|
+
---
|
|
956
|
+
|
|
957
|
+
## Post-Installation Configuration
|
|
958
|
+
|
|
959
|
+
After installing Tailscale on any platform, consider these common configurations.
|
|
960
|
+
|
|
961
|
+
### Enabling Tailscale SSH
|
|
962
|
+
|
|
963
|
+
Tailscale SSH allows you to SSH between machines in your tailnet without managing SSH keys:
|
|
964
|
+
|
|
965
|
+
```bash
|
|
966
|
+
sudo tailscale set --ssh
|
|
967
|
+
```
|
|
968
|
+
|
|
969
|
+
Then SSH using Tailscale hostnames:
|
|
970
|
+
|
|
971
|
+
```bash
|
|
972
|
+
ssh user@hostname
|
|
973
|
+
```
|
|
974
|
+
|
|
975
|
+
### Advertising Exit Nodes
|
|
976
|
+
|
|
977
|
+
To use a machine as an exit node (route all traffic through it):
|
|
978
|
+
|
|
979
|
+
```bash
|
|
980
|
+
sudo tailscale up --advertise-exit-node
|
|
981
|
+
```
|
|
982
|
+
|
|
983
|
+
On the client machine, use the exit node:
|
|
984
|
+
|
|
985
|
+
```bash
|
|
986
|
+
sudo tailscale up --exit-node=<exit-node-hostname>
|
|
987
|
+
```
|
|
988
|
+
|
|
989
|
+
### Advertising Subnet Routes
|
|
990
|
+
|
|
991
|
+
To make a local network accessible via Tailscale:
|
|
992
|
+
|
|
993
|
+
```bash
|
|
994
|
+
sudo tailscale up --advertise-routes=192.168.1.0/24
|
|
995
|
+
```
|
|
996
|
+
|
|
997
|
+
Approve the route in the Tailscale admin console at https://login.tailscale.com/admin/machines.
|
|
998
|
+
|
|
999
|
+
### MagicDNS
|
|
1000
|
+
|
|
1001
|
+
MagicDNS is enabled by default and allows you to reach machines by their hostname (e.g., `ssh myserver` instead of `ssh 100.x.y.z`). To disable it:
|
|
1002
|
+
|
|
1003
|
+
```bash
|
|
1004
|
+
sudo tailscale set --accept-dns=false
|
|
1005
|
+
```
|
|
1006
|
+
|
|
1007
|
+
### Checking Your Tailscale Status
|
|
1008
|
+
|
|
1009
|
+
View all connected machines and their IPs:
|
|
1010
|
+
|
|
1011
|
+
```bash
|
|
1012
|
+
tailscale status
|
|
1013
|
+
```
|
|
1014
|
+
|
|
1015
|
+
Get your Tailscale IPv4 and IPv6 addresses:
|
|
1016
|
+
|
|
1017
|
+
```bash
|
|
1018
|
+
tailscale ip
|
|
1019
|
+
```
|
|
1020
|
+
|
|
1021
|
+
---
|
|
1022
|
+
|
|
1023
|
+
## Common Issues
|
|
1024
|
+
|
|
1025
|
+
### Issue: Authentication Loop
|
|
1026
|
+
|
|
1027
|
+
**Symptoms**: `tailscale up` keeps asking for authentication
|
|
1028
|
+
|
|
1029
|
+
**Solutions**:
|
|
1030
|
+
|
|
1031
|
+
- Ensure you complete the authentication in your browser
|
|
1032
|
+
- Check that your machine appears in the admin console at https://login.tailscale.com/admin/machines
|
|
1033
|
+
- If using an auth key, ensure it is valid and not expired
|
|
1034
|
+
|
|
1035
|
+
### Issue: Cannot Reach Other Tailscale Devices
|
|
1036
|
+
|
|
1037
|
+
**Symptoms**: Ping or connection to other tailnet devices times out
|
|
1038
|
+
|
|
1039
|
+
**Solutions**:
|
|
1040
|
+
|
|
1041
|
+
- Verify both devices are connected: `tailscale status`
|
|
1042
|
+
- Check for firewall rules blocking Tailscale traffic
|
|
1043
|
+
- Ensure the tailscaled service is running on both devices
|
|
1044
|
+
- Try restarting Tailscale: `sudo tailscale down && sudo tailscale up`
|
|
1045
|
+
|
|
1046
|
+
### Issue: Key Expiry
|
|
1047
|
+
|
|
1048
|
+
**Symptoms**: Device disconnects after 180 days
|
|
1049
|
+
|
|
1050
|
+
**Solutions**:
|
|
1051
|
+
|
|
1052
|
+
- Re-authenticate: `sudo tailscale up`
|
|
1053
|
+
- For servers/always-on devices, disable key expiry in the admin console
|
|
1054
|
+
|
|
1055
|
+
### Issue: Slow Connection or High Latency
|
|
1056
|
+
|
|
1057
|
+
**Symptoms**: Connections work but are slow
|
|
1058
|
+
|
|
1059
|
+
**Solutions**:
|
|
1060
|
+
|
|
1061
|
+
- Check if traffic is being relayed (DERP): `tailscale netcheck`
|
|
1062
|
+
- Ensure UDP port 41641 is not blocked by firewalls
|
|
1063
|
+
- Direct connections are faster; relay is used as fallback
|
|
1064
|
+
|
|
1065
|
+
### Issue: Tailscale Conflicts with Another VPN
|
|
1066
|
+
|
|
1067
|
+
**Symptoms**: Tailscale or other VPN stops working when both are active
|
|
1068
|
+
|
|
1069
|
+
**Solutions**:
|
|
1070
|
+
|
|
1071
|
+
- Tailscale is designed to coexist with most VPNs
|
|
1072
|
+
- If conflict occurs, consult https://tailscale.com/kb/1105/other-vpns/
|
|
1073
|
+
- As a workaround, disconnect the other VPN when using Tailscale
|
|
1074
|
+
|
|
1075
|
+
### Issue: DNS Resolution Failures
|
|
1076
|
+
|
|
1077
|
+
**Symptoms**: Cannot resolve hostnames after enabling Tailscale
|
|
1078
|
+
|
|
1079
|
+
**Solutions**:
|
|
1080
|
+
|
|
1081
|
+
- Tailscale manages DNS for MagicDNS; this is expected behavior
|
|
1082
|
+
- To use your original DNS: `sudo tailscale set --accept-dns=false`
|
|
1083
|
+
- Restart your browser or clear DNS cache after changing settings
|
|
1084
|
+
|
|
1085
|
+
---
|
|
1086
|
+
|
|
1087
|
+
## References
|
|
1088
|
+
|
|
1089
|
+
- [Tailscale Official Documentation](https://tailscale.com/kb/)
|
|
1090
|
+
- [Install Tailscale on macOS](https://tailscale.com/kb/1016/install-mac)
|
|
1091
|
+
- [Three Ways to Run Tailscale on macOS](https://tailscale.com/kb/1065/macos-variants)
|
|
1092
|
+
- [Install Tailscale on Linux](https://tailscale.com/kb/1031/install-linux)
|
|
1093
|
+
- [Install Tailscale on Windows](https://tailscale.com/kb/1022/install-windows)
|
|
1094
|
+
- [Install Tailscale on Windows with MSI](https://tailscale.com/kb/1189/install-windows-msi)
|
|
1095
|
+
- [Install Tailscale in WSL 2](https://tailscale.com/kb/1295/install-windows-wsl2)
|
|
1096
|
+
- [Tailscale Packages Repository](https://pkgs.tailscale.com/stable/)
|
|
1097
|
+
- [Tailscale Homebrew Formula](https://formulae.brew.sh/formula/tailscale)
|
|
1098
|
+
- [Tailscale Chocolatey Package](https://community.chocolatey.org/packages/tailscale)
|
|
1099
|
+
- [Tailscale GitHub Repository](https://github.com/tailscale/tailscale)
|
|
1100
|
+
- [Tailscale Download Page](https://tailscale.com/download)
|