2026-04-24 11:54:16 +08:00
|
|
|
|
# Tailscale
|
|
|
|
|
|
|
|
|
|
|
|
最简单、最安全的 WireGuard 私有网络组网工具。Tailscale 让您能够轻松创建安全的 mesh 网络,将您的设备连接在一起,无论它们位于何处。
|
|
|
|
|
|
|
|
|
|
|
|
## 功能特点
|
|
|
|
|
|
|
|
|
|
|
|
- **基于 WireGuard**: 使用现代化的 WireGuard 协议,提供高性能和强安全性
|
|
|
|
|
|
- **自动 NAT 穿透**: 自动处理复杂的网络环境,实现设备间直连
|
|
|
|
|
|
- **零配置**: 无需手动配置,登录即可使用
|
|
|
|
|
|
- **端到端加密**: 所有通信都经过端到端加密
|
|
|
|
|
|
- **多平台支持**: 支持 Linux、Windows、macOS、iOS、Android 等平台
|
|
|
|
|
|
- **子网路由**: 可将整个子网路由到 Tailscale 网络
|
|
|
|
|
|
- **魔法 DNS**: 自动为设备分配易记的 DNS 名称
|
|
|
|
|
|
- **访问控制**: 精细的访问控制策略
|
|
|
|
|
|
|
|
|
|
|
|
## 使用说明
|
|
|
|
|
|
|
|
|
|
|
|
### 认证方式
|
|
|
|
|
|
|
|
|
|
|
|
Tailscale 支持两种认证方式:
|
|
|
|
|
|
|
|
|
|
|
|
#### 方式一:使用认证密钥(推荐)
|
|
|
|
|
|
|
|
|
|
|
|
1. 访问 [Tailscale 管理控制台](https://login.tailscale.com/admin/settings/keys)
|
|
|
|
|
|
2. 点击 "Generate auth key" 创建认证密钥
|
|
|
|
|
|
3. 复制生成的密钥,在部署时填写到 "Tailscale 认证密钥" 字段
|
|
|
|
|
|
4. 部署后自动完成认证,无需额外操作
|
|
|
|
|
|
|
|
|
|
|
|
**注意**:认证密钥有过期时间,请在生成后尽快使用。
|
|
|
|
|
|
|
|
|
|
|
|
#### 方式二:交互登录
|
|
|
|
|
|
|
|
|
|
|
|
1. 部署时留空 "Tailscale 认证密钥" 字段
|
|
|
|
|
|
2. 部署完成后,在 1Panel 容器列表中点击 "Tailscale" 容器的 "终端" 按钮
|
|
|
|
|
|
3. 在终端中执行以下命令:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
tailscale up
|
|
|
|
|
|
```
|
|
|
|
|
|
4. 命令会输出一个认证 URL,复制该 URL 到浏览器打开
|
|
|
|
|
|
5. 登录您的 Tailscale 账号并授权该设备
|
|
|
|
|
|
6. 认证成功后,容器会自动连接到 Tailscale 网络
|
|
|
|
|
|
|
|
|
|
|
|
### 部署参数说明
|
|
|
|
|
|
|
|
|
|
|
|
- **Tailscale 认证密钥**(可选):从管理控制台获取的认证密钥,留空则使用交互登录
|
|
|
|
|
|
- **用户空间模式**:
|
|
|
|
|
|
- `false` (推荐): 使用内核网络模式,性能更好
|
|
|
|
|
|
- `true`: 使用用户空间网络模式,兼容性更好
|
|
|
|
|
|
- **子网路由** (可选): 要广播的子网,如 `192.168.1.0/24,10.0.0.0/8`
|
|
|
|
|
|
- **接受 DNS**: 是否接受 Tailscale 的 DNS 配置
|
|
|
|
|
|
- **额外参数** (可选): tailscale up 命令的额外参数,如 `--accept-routes`
|
|
|
|
|
|
|
|
|
|
|
|
### 部署后操作
|
|
|
|
|
|
|
|
|
|
|
|
1. 部署完成后,访问 [Tailscale 管理控制台](https://login.tailscale.com/admin/machines) 查看设备状态
|
|
|
|
|
|
2. 在其他设备上安装 Tailscale 客户端并登录同一账号
|
|
|
|
|
|
3. 设备间可以通过 Tailscale IP 或魔法 DNS 名称互相访问
|
|
|
|
|
|
|
|
|
|
|
|
### 高级配置
|
|
|
|
|
|
|
|
|
|
|
|
#### 配置子网路由器
|
|
|
|
|
|
|
|
|
|
|
|
如果您希望将本地网络路由到 Tailscale:
|
|
|
|
|
|
|
|
|
|
|
|
1. 在 `子网路由` 参数中填写要广播的子网,如 `192.168.1.0/24`
|
|
|
|
|
|
2. 部署后在管理控制台批准该子网路由
|
|
|
|
|
|
3. 其他 Tailscale 设备即可访问该子网内的设备
|
|
|
|
|
|
|
|
|
|
|
|
#### 使用出口节点
|
|
|
|
|
|
|
|
|
|
|
|
将 Tailscale 配置为出口节点,让其他设备通过此设备访问互联网:
|
|
|
|
|
|
|
|
|
|
|
|
1. 在 `额外参数` 中添加 `--advertise-exit-node`
|
|
|
|
|
|
2. 部署后在管理控制台批准出口节点
|
|
|
|
|
|
3. 其他设备可以选择使用此出口节点
|
|
|
|
|
|
|
|
|
|
|
|
#### 仅首次认证
|
|
|
|
|
|
|
|
|
|
|
|
如果希望只在首次启动时使用认证密钥,后续启动使用已有状态:
|
|
|
|
|
|
|
|
|
|
|
|
- 设置环境变量 `TS_AUTH_ONCE=true`(需要在 docker-compose.yml 中手动添加)
|
|
|
|
|
|
|
|
|
|
|
|
### 数据目录
|
|
|
|
|
|
|
2026-04-24 13:26:35 +08:00
|
|
|
|
应用数据存储在 `./data/state` 目录,包含 Tailscale 的状态信息(认证状态、配置等)。该目录挂载到容器的 `/var/lib/tailscale`。
|
|
|
|
|
|
|
|
|
|
|
|
**重要提示**:请确保 `data/state` 目录有正确的读写权限,否则状态无法保存,导致每次重启都需要重新认证。
|
2026-04-24 11:54:16 +08:00
|
|
|
|
|
|
|
|
|
|
## 环境变量说明
|
|
|
|
|
|
|
|
|
|
|
|
- `TS_AUTHKEY`: Tailscale 认证密钥(可选,支持交互登录)
|
|
|
|
|
|
- `TS_USERSPACE`: 是否使用用户空间网络模式
|
|
|
|
|
|
- `TS_STATE_DIR`: 状态文件存储目录(固定为 /var/lib)
|
|
|
|
|
|
- `TS_ROUTES`: 要广播的子网路由
|
|
|
|
|
|
- `TS_ACCEPT_DNS`: 是否接受 Tailscale DNS 配置
|
|
|
|
|
|
- `TS_EXTRA_ARGS`: tailscale up 命令的额外参数
|
|
|
|
|
|
- `TS_AUTH_ONCE`: 是否仅在首次启动时认证(默认 false)
|
|
|
|
|
|
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
|
|
|
|
|
|
- 需要 `privileged` 权限和 `NET_ADMIN`、`SYS_MODULE` 能力
|
|
|
|
|
|
- 使用 `host` 网络模式以直接管理网络接口
|
|
|
|
|
|
- 需要访问 `/dev/net/tun` 设备
|
|
|
|
|
|
- 首次运行时需要有效的认证密钥或进行交互登录
|
|
|
|
|
|
- 建议在防火墙中允许 UDP 41641 端口(WireGuard 默认端口)
|
|
|
|
|
|
- 容器重启策略固定为 `always`,由 1Panel 统一管理
|
|
|
|
|
|
|
|
|
|
|
|
## 相关链接
|
|
|
|
|
|
|
|
|
|
|
|
- 官方网站:https://tailscale.com
|
|
|
|
|
|
- GitHub: https://github.com/tailscale/tailscale
|
|
|
|
|
|
- 文档:https://tailscale.com/kb
|
|
|
|
|
|
- 管理控制台:https://login.tailscale.com/admin
|
|
|
|
|
|
- 下载客户端:https://tailscale.com/download
|