Skip to content

Tailscale实现远程开关机

youxiaohanpian
Published date:

❓先解释:什么是“内网穿透工具”?

大多数家庭或办公室的电脑 不直接暴露在公网 ,只有一个共享的“外网 IP”,真正的电脑 IP 是被路由器“藏起来”的,属于 内网

这就导致从家里 Mac 想连到公司/别处的那台电脑时,找不到门(因为 IP 被路由器挡住了)。

✅内网穿透工具 = 把“门”打通,能从外面访问内网电脑。

代表工具有:


🌐关于公网 IP 会不会变?

https://ifconfig.me 查到的 IP 是你当前的公网 IP。

⚠️大部分家庭宽带(尤其是移动、电信、联通)提供的是“动态 IP”,可能重启路由器或过几天就变一次。

👉 所以不能长期用这个 IP 来远程连接。


✅推荐用的方法: Tailscale + Windows远程桌面

这套方案稳定、安全、速度快、操作也不复杂。

💡 > 总结:在开机前可以用任务计划工具来设置,也就是“服务”service,和开机后再开的“启动”是两回事。

🛠️ 步骤开始:Windows主机 + Mac 远程控制

第一步:在主机(Windows 10)安装 Tailscale

  1. 打开你那台 4090 主机。
  2. 访问官网:https://tailscale.com/download
  3. https://pkgs.tailscale.com/stable/ 各种稳定版本下载
  4. 下载并安装 Windows 版。
  5. 安装完后会提示登录,你用 Google 账号(或 GitHub)登录就行。
  6. 成功后,主机会自动加入你的私人网络。

第二步:在家里 Mac 安装 Tailscale

  1. 在 Mac 上也访问:https://tailscale.com/download
  2. 安装 Mac 版本,登录同一个账号。
  3. 你会看到自己的设备列表里有那台 Windows 电脑了。

第三步:开启 Windows 远程桌面(RDP)

在 Windows 上:

  1. 开始菜单 > 设置 > 系统 > 远程桌面
  2. 打开开关「启用远程桌面」
  3. 记住 Windows 用户名(建议设置登录密码)
  4. 打开防火墙中对远程桌面的访问(系统一般会自动处理)

第四步:在 Mac 上连接远程桌面

  1. 在 Mac 上打开 App Store,搜索并安装:

Microsoft Remote Desktop 或直接链接:https://apps.apple.com/cn/app/microsoft-remote-desktop/id1295203466

  1. 打开后,点击 “+” 添加一个新连接:
    • PC name:填你在 Tailscale 上看到的 Windows 主机名或它的 Tailscale IP(通常是 100.xxx.xxx.xxx)
    • 用户名:你的 Windows 登录用户名
    • 密码:登录密码(必须设置过)

点击保存并连接,就能看到远程桌面啦!


✅完成后能干嘛?

操作自己电脑一样用 4090 远程跑 ComfyUI、MJ、Stable Diffusion、看视频、写代码等等!


但是如果手边只有 iOS 手机,如何用手机来远程控制 4090 主机呢?

用 iPhone 控制 Windows 主机(4090)

我们依然推荐用 Tailscale + Microsoft Remote Desktop 方案,手机也完全支持!


📱方案一:用 iPhone + Tailscale + 官方远程桌面(最流畅)

🔧需要做两件事:


🖥️ 1. 在 Windows 主机上(现在就能操作)

✅【A】安装并登录 Tailscale

  1. 打开浏览器访问: https://tailscale.com/download
  2. 下载 Windows 版本,安装。
  3. 登录(用 Google 或 GitHub 都可以)
  4. 登录后不要管,它会常驻后台并分配一个虚拟 IP(通常是 100.x.x.x

✅【B】启用远程桌面(RDP)

  1. 打开: 开始 > 设置 > 系统 > 远程桌面
  2. 开启“启用远程桌面”开关 ✅
  3. 系统会提示你“允许防火墙通过”,也点允许
  4. 记下你的 Windows 登录名(比如 DESKTOP-XXXXX\用户名

如果你没设置登录密码,需要设置一个,不然远程桌面连不上。


📱2. 在 iPhone 上配置远程控制

✅【A】安装 Tailscale(让你手机和主机通网)

  1. 打开 App Store,搜索并安装 Tailscale
  2. 登录同一个账号(和你在电脑上登录的一样)
  3. 你会看到你的 4090 主机出现在设备列表中

✅【B】安装 Microsoft Remote Desktop(远程桌面)

  1. 仍在 App Store,搜索并安装:

Microsoft Remote Desktop 链接点我跳转 App Store

  1. 打开 App,点击“+” > 添加 PC:

    • PC 名称 :填 Tailscale 分配给主机的 100.xxx.xxx.xxx 地址 👉 可以在 Tailscale App 里点你的设备名查看 IP

    • 用户名 :Windows 的登录名(比如 User

    • 密码 :Windows 的登录密码

  2. 保存后点击该设备,就可以看到 Windows 画面啦!


✅ 如果你想用「网页控制」而不是远程桌面…


后期打算再部署一个 Web 服务:


问题解决

Tailscale 不随系统自动登录 导致的“远程断联”问题,这是远程运维中一个很常见也很容易踩坑的点,解决方式如下👇

需要注意的是,我实际测试官网的安装包不行,Windows需要下载:pkgs.tailscale.com/stable/#windows

Tailscale 官网的下载页面(https://tailscale.com/download)默认提供的是 .exe 安装程序,这个版本安装后不会注册为 Windows 系统服务,因此在系统重启或用户未登录时,Tailscale 不会自动启动,导致无法远程连接。


✅ 解决方案:使用 .msi 安装包安装 Tailscale 系统服务

要实现 Tailscale 在 Windows 系统启动时自动运行,即使用户未登录,也能保持远程连接,你需要使用 .msi 安装包来安装 Tailscale。以下是具体步骤:

1. 下载 .msi 安装包

访问 Tailscale 的官方安装包页面:

👉 https://pkgs.tailscale.com/stable/

在该页面中,找到适合你系统架构的安装包:


🧩 文件说明:

Column 1Column 2Column 3
文件名描述是否支持后台服务
tailscale-setup-1.82.5.exe标准安装包(不推荐用于注册系统服务)❌ 不自动注册为系统服务
tailscale-setup-full-1.82.5.exe完整版安装器(包含所有架构的 MSI,适合打包部署)✅ 可用于系统服务
tailscale-setup-1.82.5-amd64.msi64 位 Windows 的官方推荐 MSI 安装包✅ 是你最推荐用的版本(实测win10可以,但win11要装full版本的)
tailscale-setup-1.82.5-arm64.msi适用于 ARM 架构的 Windows(如 Surface X)❌ 大多数 PC 不用选它
tailscale-setup-1.82.5-x86.msi适用于 32 位系统❌ 老旧系统才用这个

✅ 推荐选择:

👉 tailscale-setup-1.82.5-amd64.msi

适用于绝大多数现代 Windows 10 / 11 电脑,并且安装后会注册成 系统服务 TailscaleService ,可以:


🛠 安装后你需要做的:

  1. 双击安装 MSI 文件
  2. 安装完后,打开 PowerShell(管理员)运行:这将启动 Tailscale 服务,并设置为开机自动启动。
Start-Service TailscaleService
Set-Service TailscaleService -StartupType Automatic
  1. 登录 Tailscale 账号:

💡 小贴士

安装 .msi 版本后,之前 .exe 安装的版本(如果没卸载)可能会有冲突,建议:

# 可选:卸载旧版本
Get-WmiObject -Query "select * from Win32_Product where Name like 'Tailscale%'" | ForEach-Object { $_.Uninstall() }

2. 安装 Tailscale

双击下载的 .msi 文件,按照提示完成安装。

安装完成后,Tailscale 会注册为 Windows 系统服务,名为 TailscaleService

3. 启动并设置服务自动启动

以管理员身份打开 PowerShell,执行以下命令:

4. 登录 Tailscale

在系统托盘中找到 Tailscale 图标,点击后选择“登录”,按照提示在浏览器中完成账户登录。


🔍 验证服务状态

可以通过以下命令检查 Tailscale 服务的状态:

Get-Service TailscaleService

如果显示状态为 Running ,说明服务已成功启动。


📝 注意事项


✅ 问题本质:

远程重启 Windows 主机后:

  1. 开机进入 登录界面 前, Tailscale 不启动
  2. 所以 无法从远程再次连上去 ,陷入“我看得见你重启,但我回不去了”的困境。 虽然用了 .msi 文件,但系统中依然提示 TailscaleService 不存在, 说明服务并没有被成功注册 。一步步排查,并且确保服务是正确安装、注册和运行的。

✅ 步骤一:确认是否安装成功

先检查是否真的通过 MSI 安装了 Tailscale:

执行这个命令列出所有包含 “tailscale” 的程序:

Get-WmiObject -Query "select * from Win32_Product where Name like '%tailscale%'"

如果没有任何输出,说明 MSI 安装失败或没安装成功 ,你需要重新安装一次:

✅ 推荐重新安装 tailscale-setup-1.82.5-amd64.msi

  1. 右键 MSI 文件 → 选择“以管理员身份运行”
  2. 安装完成后,再重启一下电脑(这会确保服务注册成功)
  3. 然后再运行:
Start-Service TailscaleService
Set-Service TailscaleService -StartupType Automatic

✅ 步骤二:手动检查服务是否存在

执行以下命令查看是否有 tailscale 的服务:

Get-Service | Where-Object { $_.Name -like "*tailscale*" }

如果这也没找到,就说明服务根本没注册进系统(可能之前安装的是 .exe 而不是 .msi )。


🛠️ 解决方案总结:

Column 1Column 2
问题解决办法
安装了 .exe 而非 .msi卸载 .exe 版本,改装 .msi用管理员权限安装
安装 .msi 没有服务注册重启系统,或确保安装时没有被安全策略阻止
服务安装失败尝试在 PowerShell 里用 msiexec 安装(见下方)

✅ 终极办法:用 msiexec 安装 .msi

用命令行强制以系统权限安装(确保服务正确注册):

msiexec /i "C:\路径\到\tailscale-setup-1.82.5-amd64.msi" /qn

替换路径为本地的实际路径


只要你用 管理员身份正确安装 tailscale-setup-1.82.5-amd64.msi (实测win10可以,win11要下载full版本的) ,重启后服务就会出现。



tailscale.exe up --login-server=https://login.tailscale.com --accept-routes

tailscale.exe up --login-server=https://login.tailscale.com --accept-routes --unattended

测试用的这个命令:

Set-Service -Name tailscale -StartupType Automatic

确实是设置 tailscale 服务为“开机自动启动”的方式。那么我们现在来确认是否生效,分两步检查即可


✅ 一步步确认是否生效

1️⃣ 检查服务状态和启动类型

在 PowerShell 中输入:

Get-Service -Name tailscale | Select-Object Name, Status, StartType

如果返回类似:

Name     Status  StartType
----     ------  ----------
tailscale Running Automatic

就说明命令 已经成功生效 ,服务在运行中且开机自启。


2️⃣ 或者用任务管理器图形界面查看(备用方法)

  1. 按下 Ctrl + Shift + Esc 打开任务管理器
  2. 切换到【服务】标签页
  3. 找到 tailscale 服务,查看是否是“正在运行”
  4. 双击这个服务,看“启动类型”是不是“自动”

⚠️ 如果命令返回错误或查不到服务?

可能原因:

Get-Service | Where-Object { $_.Name -like "*tail*" }

找到正确名字后再重新执行:

Set-Service -Name 正确服务名 -StartupType Automatic

💡附加建议:设置 tailscale 自启动后自动登录

如果希望 tailscale 每次启动后 自动连上账户和网络 ,还需要配置:

tailscale up --authkey <认证密钥> --hostname your-machine

登录 tailscale 网站,在 Admin Console → Keys 页面生成 authkey


你现在这个命令没报错就已经很不错了,照我这两步确认一下状态就能安心 😌

如果你还有别的服务名疑问,发我输出我来帮你判断。

豆包:关机之后重启,没输入密码时,tailscale并登录 的解决方案

在 Windows 系统中, 未输入密码进入登录界面时 ,用户级服务默认不会启动(因为此时用户会话未激活)。若要让 Tailscale 在 系统启动后无需用户登录即可自动运行 ,需要将其配置为以 系统账户(Local System) 运行,并结合 无人值守模式服务自启策略 。以下是具体解决方案:

核心原理:让 Tailscale 以系统账户运行

Windows 服务有两种运行身份:

  1. 用户账户 :需用户登录后才能启动(如普通用户账户)。
  2. 系统账户(Local System) :无需用户登录,系统启动时直接运行(推荐方案)。

操作步骤 1:检查 Tailscale 服务的登录身份

  1. 打开「服务管理器」: Win + R → 输入 services.msc → 找到 Tailscale 服务。
  2. 右键点击服务 →属性→ 切换到登录选项卡:
    • 若当前为用户账户 (如 YourUsername ):需修改为 本地系统账户
    • 若已是本地系统账户 :跳过此步骤。

操作步骤 2:将服务登录身份改为本地系统账户(实测设置一致不用改)

  1. 在「登录」选项卡中,勾选 本地系统账户
  2. 取消勾选 允许服务与桌面交互 (可选)。
  3. 点击 应用确定 ,重启服务使配置生效。

操作步骤 3:配置 Tailscale 无人值守模式

无人值守模式可让 Tailscale 在系统账户下自动完成认证,无需用户干预。 以管理员身份打开 PowerShell,执行:

tailscale up --unattended --login-server=https://login.tailscale.com
PS C:\Users\somebody> tailscale up --unattended --login-server=https://login.tailscale.com
Error: changing settings via 'tailscale up' requires mentioning all
non-default flags. To proceed, either re-run your command with --reset or
use the command below to explicitly mention the current value of
all non-default settings:

        tailscale up --login-server=https://login.tailscale.com --unattended --advertise-exit-node

查看完整状态信息

tailscale status --json | ConvertFrom-Json | ConvertTo-Json -Depth 10

1. 命令作用

tailscale status --json | ConvertFrom-Json | Select-Object -ExpandProperty Self

2. 重点检查参数

执行命令后,查看以下字段是否符合预期:

(1)连接状态

(2)无人值守模式

(3)出口节点配置

(4)认证信息

操作步骤 4:确保服务启动类型为「自动」

  1. 在「服务管理器」中,右键点击 Tailscale 服务 → 属性
  2. 启动类型设置为自动(延迟启动)或自动。
    • 延迟启动 :避免抢占系统资源,适合后台服务。
    • 自动 :系统启动后立即启动。

验证:模拟未登录状态下的服务运行

  1. 重启计算机 ,进入登录界面(不输入密码)。
  2. 通过 远程工具 (如公司内部的远程管理工具)或本地物理机,检查:
    • 服务状态:
# 远程执行(需管理员权限)
Invoke-Command -ComputerName <远程计算机名> -Script { Get-Service tailscale }

若状态为Running,表示服务已在系统账户下启动。

- Tailscale 连接状态:
Invoke-Command -ComputerName <远程计算机名> -Script { tailscale status }

若显示 Tailscale IP 和节点信息,说明已成功连接。 3. 示例输出(成功状态)

Online              : True
Active              : True
UserProfile         : [email protected]
TailscaleIPs        : {100.101.102.103}
Unattended          : True
AdvertiseExitNode   : false  # 若未启用出口节点
LoginServer         : https://login.tailscale.com

公司环境特殊配置(若遇限制)

  1. 组策略限制 : 部分公司通过组策略禁止服务以系统账户运行,需联系 IT 部门解除限制。
  2. 认证凭证问题: 若 Tailscale 需要用户凭证(如 OAuth 登录),系统账户无法存储用户会话,需提前通过
tailscale up --auth-key

使用预生成的认证密钥(适合企业批量部署)。

tailscale up --auth-key=file:/path/to/authkey --unattended

(需将认证密钥文件放置在系统可访问的路径,如C:\ProgramData\tailscale\)。

总结:关键配置点

Column 1Column 2
配置项要求
服务登录身份必须为 本地系统账户 (Local System),否则无法在未登录时启动。
启动类型自动(延迟启动)或自动。
无人值守模式必须启用( --unattended ),否则无法绕过用户会话认证。
认证方式推荐使用 认证密钥(Auth Key) ,避免依赖用户登录后的 OAuth 流程。

通过以上配置,Tailscale 会在系统启动时以系统账户自动运行,无需用户登录即可完成网络连接,满足远程开机自启需求。

https://login.tailscale.com/admin/settings/keys

Image

生成密钥网址

tailscale up --unattended --login-server=https://login.tailscale.com --auth-key=file:C:\tailscale-authkey.txt --reset

tailscale up —authkey=tskey-xxxx —login-server=https://login.tailscale.com —reset


✅ 一、用 iPhone 远程 Mac 核心思路(和远程 Windows 类似)

你需要完成两个事情:

  1. Mac 上运行一个远程桌面服务 (或类似 VNC 服务)
  2. iPhone 安装一个客户端 App ,通过 Tailscale 访问那台 Mac

🔧 二、推荐方案:使用 VNC + Tailscale

🖥️ mac 端设置(被控端)

macOS 本身支持 VNC,操作如下:

  1. 打开系统设置 > 共享(Sharing)
  2. 开启 屏幕共享(Screen Sharing)
  3. 勾选 允许 VNC 查看器控制屏幕 ,并设置一个密码(这个就是 VNC 密码)
  4. 确认 Tailscale 正常连接 ,并记下该 mac 的 Tailscale IP(一般是 100.x.x.x

📱 iPhone 端设置(控制端)

  1. 安装 App:推荐 VNC Viewer by RealVNC

  2. 打开 App,添加新连接

    • 地址填: 100.x.x.x (Mac 的 Tailscale IP)
    • 名称随意
  3. 输入你在 mac 设置的 VNC 密码,即可连接


🔄 方案二:Moonlight(如果追求高帧率远控)

如果你追求类“远程打游戏”般的丝滑体验,可以用 Moonlight + Sunshine 组合:


🧠 注意事项


✅ 总结

类型工具组合适合用途
标准远控Tailscale + VNC一般操作、远程桌面
丝滑高帧远控Tailscale + Sunshine + Moonlight看视频、打游戏
零配置即用AnyDesk / RustDesk + Tailscale非技术用户

偏开发和可控性的话,推荐走 Tailscale + VNC 或 Moonlight 路线

Previous
哲学思想专题读书笔记
Next
历史人文专题读书笔记