docs: 新增 Tailscale (headscale 節點) 段落
This commit is contained in:
58
README.md
58
README.md
@@ -83,6 +83,64 @@ services:
|
||||
```
|
||||
然後 `cd /opt/echoip && docker compose up -d`。
|
||||
|
||||
## Tailscale(headscale 節點)
|
||||
|
||||
以 Docker 方式部署,結構比照 CT102(`/Users/timmy/dev/42_102`),檔案在 `/opt/tailscale`。
|
||||
|
||||
| 項目 | 值 |
|
||||
|------|-----|
|
||||
| Tailscale IP | `100.64.0.16`(hostname `ct105`,user `mainnet`)|
|
||||
| 控制平面 | `https://headscale.lotimmy.com`(headscale 容器在 CT126)|
|
||||
| Image | `tailscale/tailscale:latest`,`restart: unless-stopped` |
|
||||
|
||||
```yaml
|
||||
# /opt/tailscale/docker-compose.yml
|
||||
services:
|
||||
tailscale:
|
||||
image: tailscale/tailscale:latest
|
||||
container_name: tailscale
|
||||
hostname: ct105
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
environment:
|
||||
- TS_AUTHKEY=${TS_AUTHKEY}
|
||||
- TS_EXTRA_ARGS=--login-server ${TS_LOGIN_SERVER} --reset
|
||||
- TS_USERSPACE=true # 無 /dev/net/tun → userspace 模式
|
||||
- TS_STATE_DIR=/var/lib/tailscale
|
||||
- TS_HOSTNAME=ct105
|
||||
volumes:
|
||||
- ./state:/var/lib/tailscale
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
```
|
||||
|
||||
`.env` 放 `TS_AUTHKEY`(headscale reusable preauth key)與 `TS_LOGIN_SERVER`。
|
||||
|
||||
常用:
|
||||
|
||||
```sh
|
||||
docker exec tailscale tailscale status
|
||||
docker exec tailscale tailscale ip -4
|
||||
cd /opt/tailscale && docker compose up -d # 改設定後重建
|
||||
```
|
||||
|
||||
### 與 CT102 的差異(CT105 無 `/dev/net/tun`)
|
||||
|
||||
CT105 是無 TUN 的 LXC,故與 CT102 的版本不同:
|
||||
|
||||
- `TS_USERSPACE=true`、不掛 `/dev/net/tun`、無 `cap_add` / `privileged`。
|
||||
- 拿掉 `--advertise-routes` / exit-node(userspace 模式做不到)。
|
||||
- ⚠️ 副作用:其他節點能 ping、能看到 CT105,但**無法直接連到 CT105 本機服務**(如 echoip `:8080`)——userspace 模式不轉發入站到 localhost。
|
||||
- 升級路徑:要完整功能(subnet router / exit node / 入站到本機服務),須在母機(PVE node)替此 LXC 開 TUN,再把 compose 改成 CT102 那版(`TS_USERSPACE=false` + 掛 `/dev/net/tun` + `cap_add` + `--advertise-routes`)。
|
||||
|
||||
### preauth key 來源
|
||||
|
||||
headscale 容器在 CT126,用 CLI 產生(公開端點的 API token 已失效):
|
||||
|
||||
```sh
|
||||
ssh ct126 'docker exec headscale headscale preauthkeys create --user 1 --reusable --ephemeral=false --expiration 87600h'
|
||||
```
|
||||
|
||||
## 其他
|
||||
|
||||
- 本機服務:sshd:22、Postfix(僅 `127.0.0.1:25`)、systemd-resolved(本機 DNS)。對外僅 echoip:8080。
|
||||
|
||||
Reference in New Issue
Block a user