无目的读书是散步而不是学习

LLAA Home

使用tailscale实现内网穿透

发布于 # life #Life

20260327002443.png

Tailscale的配置非常简单,登陆,连接,完事

核心步骤概览

  1. 安装与组网: 在所有设备(Windows 工作机、Mac)上安装并登录 Tailscale,形成虚拟局域网。
  2. 部署 SSH 服务: 在 Windows 工作机上部署并启动 OpenSSH 服务器。
  3. 配置免密登录: 在 Mac 上生成 SSH 密钥对,并将公钥配置到 Windows 工作机。
  4. 验证与优化: 测试连接,并配置别名以简化操作。

详细操作指南

1. Tailscale 组网

2. 在 Windows 工作机上部署 OpenSSH 服务

由于 Windows 自带的 OpenSSH Server 可能存在版本冲突或安装缓慢的问题,推荐使用“绿色版”手动安装:

  1. 下载离线包: 从 OpenSSH for Windows 的 GitHub Releases 页面 下载最新版的 OpenSSH-Win64.zip
  2. 解压文件: 将压缩包解压到一个干净的目录,例如 C:\OpenSSH-Server
  3. 注册并启动服务: 以管理员身份打开 PowerShell,执行以下命令:
    cd C:\OpenSSH-Server
    .\install-sshd.ps1
    .\ssh-keygen.exe -A
    Start-Service sshd
    Set-Service -Name sshd -StartupType 'Automatic'
  4. 放行防火墙: 确保 Windows 防火墙允许 TCP 22 端口的入站连接:
    New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

3. 配置 Mac 到 Windows 的 SSH 免密登录

在 Mac 端 (发起端)

  1. 生成密钥对 (如果尚未生成):
    ssh-keygen -t ed25519
    # 一路回车使用默认设置
  2. 获取公钥内容:
    cat ~/.ssh/id_ed25519.pub
    # 复制输出的整行内容

在 Windows 端 (被控端)

重要: 如果使用的是 Administrator 账户,必须将公钥放入特定的 C:\ProgramData\ssh\administrators_authorized_keys 文件中。

  1. 创建公钥文件:
    # 确保目录存在
    New-Item -ItemType Directory -Path "C:\ProgramData\ssh" -Force
    # 将下面引号内的内容替换为你从 Mac 复制的公钥
    $pubKey = "ssh-ed25519 AAAAC3Nza...你的完整公钥"
    $pubKey | Out-File -FilePath "C:\ProgramData\ssh\administrators_authorized_keys" -Encoding ascii
  2. 严格修正文件权限 (此步至关重要):
    $adminKeyPath = "C:\ProgramData\ssh\administrators_authorized_keys"
    icacls $adminKeyPath /inheritance:r
    icacls $adminKeyPath /grant "SYSTEM:(F)"
    icacls $adminKeyPath /grant "BUILTIN\Administrators:(F)"

4. 验证与优化

  1. 测试连接: 在 Mac 终端尝试连接:
    ssh Administrator@<Windows_Tailscale_IP>
    # 应该无需密码直接登录
  2. 配置 SSH 别名: 为了方便,可以在 Mac 的 ~/.ssh/config 文件中添加一个主机别名:
    Host work
        HostName <Windows_Tailscale_IP>
        User Administrator
        IdentityFile ~/.ssh/id_ed25519
    配置完成后,只需输入 ssh work 即可连接。

常见问题排查

进阶应用