Windows Tailscale 启用 Socks5 代理

前言

Tailscale 可以把多台设备连成一个私有网络,配置成本很低。默认情况下,它可能会接管系统的部分或全部网络流量(例如使用 Exit Node 时)。有时我们只想让特定应用通过 Tailscale 网络访问资源,不想影响整个系统。

Tailscale 提供了 Userspace Networking 模式,并内置 SOCKS5 代理服务器。启用后,可以把 Tailscale 当成本地代理服务,让应用按需连接。

核心原理

要启用 SOCKS5 代理,我们需要修改 Tailscale Windows 服务的启动参数,增加以下两个关键参数:

  1. -tun=userspace-networking:此参数将 Tailscale 的网络处理从内核空间(TUN 驱动)转移到用户空间。这是启用内置代理功能的前提。
  2. -socks5-server="127.0.0.1:<port>":此参数启动一个 SOCKS5 代理服务器,监听在本地的指定端口。常用的端口有 108010800 等,你可以根据需要自行选择,只需确保端口未被占用。

操作步骤

修改 Windows 服务的启动参数有多种方法,这里介绍几种常用的方式。

方法一:使用注册表编辑器(推荐)

这是最直接且无需额外工具的方法。

  1. 打开注册表编辑器:按下 Win + R 键,输入 regedit 并回车。

  2. 定位到 Tailscale 服务项:在地址栏中粘贴并跳转到以下路径:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tailscale
  3. 修改 ImagePath 值:在右侧窗口中,找到名为 ImagePath 的字符串值,并双击打开它。其默认值通常是:

    "C:\Program Files\Tailscale\tailscaled.exe"
  4. 添加启动参数:在原有值的末尾,在引号外部添加我们需要的参数。例如,我们使用 1080 端口:

    "C:\Program Files\Tailscale\tailscaled.exe" -tun=userspace-networking -socks5-server=127.0.0.1:1080

    注意:请确保你的 Tailscale 安装路径与 ImagePath 中的路径一致。

  5. 保存并关闭:点击“确定”保存修改,然后关闭注册表编辑器。

方法二:使用命令行(高级)

对于熟悉命令行的用户,可以使用 sc (Service Control) 命令快速完成配置。

  1. 以管理员身份打开命令提示符或 PowerShell

  2. 执行以下命令

    sc.exe config Tailscale binPath= "\"C:\Program Files\Tailscale\tailscaled.exe\" -tun=userspace-networking -socks5-server=127.0.0.1:1080"

    重要提示binPath= 后面必须有一个空格。整个路径和参数需要用双引号包裹,并且可执行文件路径本身也需要用转义的双引号 \" 包裹,以处理路径中的空格。

方法三:使用第三方服务管理工具

如果你习惯使用图形化工具管理服务,可以使用如 srvman 等第三方工具。操作逻辑与前两种方法一致:找到 Tailscale 服务,编辑其“可执行文件路径”或“启动参数”字段。

srvman

重启服务并验证

配置修改完成后,必须重启 Tailscale 服务才能使新参数生效。

  1. 按下 Win + R,输入 services.msc 并回车,打开服务管理器。
  2. 在服务列表中找到 Tailscale
  3. 右键点击它,选择“重新启动”。

注意事项与高级技巧

用户空间网络的性能通常略低于内核模式,因为网络数据包需要在内核和用户空间之间进行拷贝。对于大多数日常应用(网页浏览、代码同步)来说,这种差异几乎无法察觉,但在高吞吐量场景下可能会有影响。

参考