feat(tailscale): bind Mac mini to Tailscale (100.108.205.40) with subnet routing and router bypass

Browse Source
This commit is contained in:
Yin Kou committed 2026-11-06 22:18:47 +08:00
1 parent 713007cc69
commit 10381a8c77
5 files changed
+26 -8

No files matched your search

+11
View File
@@ -107,6 +107,17 @@
- 为 `clash.home.961504.xyz:10443` 与 `router.home.961504.xyz:10443` 开启 `basic_auth` 密码认证(账号 `ixvii0iv`,密码与 Mac mini 一致)。 - 为 `clash.home.961504.xyz:10443` 与 `router.home.961504.xyz:10443` 开启 `basic_auth` 密码认证(账号 `ixvii0iv`,密码与 Mac mini 一致)。
- **回滚方式**:`ssh mini "cd ~/homelab/stacks/sun-panel && docker compose down"` - **回滚方式**:`ssh mini "cd ~/homelab/stacks/sun-panel && docker compose down"`
### 11. 部署 Mac mini Tailscale 异地组网与家庭子网路由 (`100.108.205.40`)
- **操作时间**:2026-11-06 22:10 ~ 22:18
- **目标设备**:小米路由器 (`192.168.31.1`) & Mac mini (`192.168.31.164`) & 本机 MacBook Air
- **变更内容**:
1. **路由器防冲突配置**:在 [`configs/router-shellcrash-config.yaml`](file:///Users/ixvii0iv/homelab/configs/router-shellcrash-config.yaml) 中将 `+.tailscale.com`、`+.tailscale.io`、`+.ts.net` 加入 `fake-ip-filter` 与 `全球直连`,并添加防火墙 `Tailscale_UDP_41641` 端口映射,确保 P2P 直连打洞不被国外代理劫持。
2. **Mac mini 系统级守护进程**:开启内核 IPv4 转发 (`net.inet.ip.forwarding=1`),安装并启动 `sudo brew services start tailscale`,执行 `sudo tailscale up --advertise-routes=192.168.31.0/24 --accept-dns=false`。
3. **组网结果**:Mac mini 获得固定 Tailscale IP `100.108.205.40`,同时实测 Mac mini 海外出口 IP 仍为 `104.43.105.243` (SG Azure),对家庭原有网络零干扰。
4. **本机 SSH 别名**:在 [`~/.ssh/config`](file:///Users/ixvii0iv/.ssh/config) 新增 `Host mini-ts` (`100.108.205.40`)。
- **回滚方式**:`ssh mini "sudo /opt/homebrew/bin/tailscale down && sudo brew services stop tailscale"`
+3 -2
View File
@@ -28,8 +28,9 @@
- 已配置 [`scripts/cloudflare-ddns.sh`](file:///Users/ixvii0iv/homelab/scripts/cloudflare-ddns.sh) 并注册 macOS `LaunchAgent` (`com.homelab.cf-ddns.plist`,每 5 分钟自动检测并同步公网 IP 至 `home.961504.xyz` 与 `*.home.961504.xyz`)。 - 已配置 [`scripts/cloudflare-ddns.sh`](file:///Users/ixvii0iv/homelab/scripts/cloudflare-ddns.sh) 并注册 macOS `LaunchAgent` (`com.homelab.cf-ddns.plist`,每 5 分钟自动检测并同步公网 IP 至 `home.961504.xyz` 与 `*.home.961504.xyz`)。
- 已通过 `acme.sh` + Cloudflare DNS API 自动签发 `home.961504.xyz` 与 `*.home.961504.xyz` 免费泛域名 SSL 证书。 - 已通过 `acme.sh` + Cloudflare DNS API 自动签发 `home.961504.xyz` 与 `*.home.961504.xyz` 免费泛域名 SSL 证书。
- 已部署明文 Git 管理的 `home-gateway` ([`stacks/gateway/Caddyfile`](file:///Users/ixvii0iv/homelab/stacks/gateway/Caddyfile)),监听 `10443` 端口反代极空间 Z4 (`https://nas.home.961504.xyz:10443`)、Lucky (`https://lucky.home.961504.xyz:10443`) 与 Clash 面板 (`https://clash.home.961504.xyz:10443`)。 - 已部署明文 Git 管理的 `home-gateway` ([`stacks/gateway/Caddyfile`](file:///Users/ixvii0iv/homelab/stacks/gateway/Caddyfile)),监听 `10443` 端口反代极空间 Z4 (`https://nas.home.961504.xyz:10443`)、Lucky (`https://lucky.home.961504.xyz:10443`) 与 Clash 面板 (`https://clash.home.961504.xyz:10443`)。
- [ ] **2.3 部署 Tailscale(打通 MacBook + Mac mini + Azure 2C4G)**: - [x] **2.3 部署 Tailscale(异地组网与家庭子网路由)**:
- 三端登录同一 Tailnet,开启 Mac mini 的 Subnet Router(子网路由:`192.168.31.0/24`),实现在外网免配置直接用 `192.168.31.x` 访问家里极空间与路由器。 - 已在小米路由器配置 `*.tailscale.com` / `*.ts.net` 免 Fake-IP 直连与 UDP `41641` 端口映射。
- 已在 Mac mini 启动系统级 `tailscaled` 守护进程(分配固定虚拟 IP `100.108.205.40`),开启 `192.168.31.0/24` 子网路由并关闭 `--accept-dns=false` 保护原有分流网络。
- [ ] **2.4 配置 Azure 2C4G 联动服务**: - [ ] **2.4 配置 Azure 2C4G 联动服务**:
- 部署 **Uptime Kuma**:从公网外部监控家里公网 IP 与核心服务,断网/掉线立即推送告警。 - 部署 **Uptime Kuma**:从公网外部监控家里公网 IP 与核心服务,断网/掉线立即推送告警。
- 部署 **Caddy / Nginx 443 免端口反代**:通过 Tailscale/WireGuard 隧道将轻量 Web 服务免端口(标准 `443`)暴露。 - 部署 **Caddy / Nginx 443 免端口反代**:通过 Tailscale/WireGuard 隧道将轻量 Web 服务免端口(标准 `443`)暴露。
+1 -1
View File
@@ -32,7 +32,7 @@ flowchart TB
| 设备角色 | 设备名称 | 局域网/公网 IP | 硬件配置 | SSH 快捷连接 | 核心职责 | | 设备角色 | 设备名称 | 局域网/公网 IP | 硬件配置 | SSH 快捷连接 | 核心职责 |
| :--- | :--- | :--- | :--- | :--- | :--- | | :--- | :--- | :--- | :--- | :--- | :--- |
| **核心计算/AIO** | **Mac mini** | `192.168.31.164` | Apple M6 (12C) / 24GB / 512G | `ssh mini` | Lucky 公网反代、Tailscale 节点、OrbStack 容器、24h 远程开发与 AI 算力 | | **核心计算/AIO** | **Mac mini** | 内网 `192.168.31.164`<br/>Tailscale `100.108.205.40` | Apple M6 (12C) / 24GB / 512G | `ssh mini` (或 `ssh mini-ts`) | Caddy/Lucky 公网反代、Tailscale 子网路由、OrbStack 容器、24h 远程开发与 AI 算力 |
| **核心存储/NAS** | **极空间 Z4** | `192.168.31.185` | 磁盘阵列 NAS | - | 大容量影视/相册/冷备份存储,通过 SMB 挂载给 Mac mini | | **核心存储/NAS** | **极空间 Z4** | `192.168.31.185` | 磁盘阵列 NAS | - | 大容量影视/相册/冷备份存储,通过 SMB 挂载给 Mac mini |
| **主路由/透明网关** | **小米路由器** | `192.168.31.1` (联通公网 `124.90.142.21`) | 已解锁 SSH + ShellCrash | `ssh 192.168.31.1` | 宽带拨号、全屋 DHCP、ShellCrash (Mihomo) 科学上网分流、端口映射 | | **主路由/透明网关** | **小米路由器** | `192.168.31.1` (联通公网 `124.90.142.21`) | 已解锁 SSH + ShellCrash | `ssh 192.168.31.1` | 宽带拨号、全屋 DHCP、ShellCrash (Mihomo) 科学上网分流、端口映射 |
| **云端协同节点** | **Azure 2C4G** | `104.43.105.243` (`sea.961504.xyz`) | 2 vCPU / 4 GB RAM | `ssh ixvii0iv@104.43.105.243` | 443 免端口反向代理、Uptime Kuma 外部断网告警、企微固定白名单 IP 转发 | | **云端协同节点** | **Azure 2C4G** | `104.43.105.243` (`sea.961504.xyz`) | 2 vCPU / 4 GB RAM | `ssh ixvii0iv@104.43.105.243` | 443 免端口反向代理、Uptime Kuma 外部断网告警、企微固定白名单 IP 转发 |
+6
View File
@@ -56,6 +56,9 @@ dns:
- '+.lan' - '+.lan'
- '+.local' - '+.local'
- '+.home.961504.xyz' - '+.home.961504.xyz'
- '+.tailscale.com'
- '+.tailscale.io'
- '+.ts.net'
- '+.msftconnecttest.com' - '+.msftconnecttest.com'
- '+.msftncsi.com' - '+.msftncsi.com'
- '+.pool.ntp.org' - '+.pool.ntp.org'
@@ -161,6 +164,9 @@ rule-providers:
rules: rules:
- DOMAIN-SUFFIX,home.961504.xyz,全球直连 - DOMAIN-SUFFIX,home.961504.xyz,全球直连
- DOMAIN-SUFFIX,tailscale.com,全球直连
- DOMAIN-SUFFIX,tailscale.io,全球直连
- DOMAIN-SUFFIX,ts.net,全球直连
- RULE-SET,applications,全球直连 - RULE-SET,applications,全球直连
- DOMAIN,clash.razord.top,全球直连 - DOMAIN,clash.razord.top,全球直连
- DOMAIN,yacd.haishan.me,全球直连 - DOMAIN,yacd.haishan.me,全球直连
+5 -5
View File
@@ -9,8 +9,8 @@ status.961504.xyz {
reverse_proxy 127.0.0.1:3001 reverse_proxy 127.0.0.1:3001
} }
# 2. 家庭导航/服务免端口 443 反代示例(通过 Tailscale 加密隧道回源到家里 Mac mini) # 2. 家庭导航/服务免端口 443 反代(通过 Tailscale 加密隧道 100.108.205.40 回源到家里 Mac mini)
# home.961504.xyz { nav.961504.xyz {
# encode zstd gzip encode zstd gzip
# reverse_proxy <MAC_MINI_TAILSCALE_IP>:16601 reverse_proxy 100.108.205.40:3002
# } }