通过Windows服务实现frpc客户端开机自启动(无需登录)

1,217 阅读2分钟

使用工具:NSSM (Non-Sucking Service Manager)

步骤 1:下载并准备工具

  1. 下载 NSSM

    • 访问 NSSM官网下载页,选择适合你系统的版本:
      • 64位系统:下载 nssm-2.24-101-g897c7ad.zip(或其他最新版本)
      • 32位系统:下载 nssm-2.24-101-g897c7ad-win32.zip
    • 解压压缩包,将 nssm.exe 放到一个固定目录(例如 C:\Tools\nssm)。
  2. 准备 frpc 文件

    • 确保 frpc.exe 和配置文件 frpc.ini 已放置在固定目录(例如 C:\frp)。
    • 检查 frpc.ini 配置是否正常(可通过手动运行 frpc -c C:\frp\frpc.ini 测试)。

步骤 2:以管理员身份运行命令行

  1. Win + X,选择 “Windows PowerShell(管理员)”“命令提示符(管理员)”
    • 如果提示权限,点击 “是”

步骤 3:使用 NSSM 创建服务

  1. 进入 NSSM 所在目录

    cd C:\Tools\nssm  # 替换为你的实际路径
    
  2. 执行安装命令

    .\nssm.exe install FrpcService
    
    • 此命令会弹出一个配置窗口(如下图)。 image.png
  3. 填写服务配置

    • Path: 点击 Browse,选择 frpc.exe 的路径(例如 C:\frp\frpc.exe)。
    • Startup directory: 填写 frpc.exe 所在目录(例如 C:\frp)。
    • Arguments: 输入启动参数(例如 -c C:\frp\frpc.ini)。
    • Service name: 保持默认 FrpcService(可自定义)。
    • 点击 “Install service” 完成安装。

步骤 4:配置服务启动方式

  1. 打开服务管理器

    • Win + R,输入 services.msc,回车。
  2. 找到 FrpcService

    • 在列表中找到刚创建的服务,右键选择 “属性”
  3. 设置启动类型

    • 启动类型:选择 “自动”(延迟启动可选)。
    • 点击 “确定” 保存。
  4. 手动启动服务(可选)

    • 右键服务,选择 “启动”,检查是否运行正常。

步骤 5:验证服务是否生效

  1. 重启计算机

    • 无需登录,直接重启系统。
  2. 检查 frpc 进程

    • Ctrl + Shift + Esc 打开任务管理器,切换到 “详细信息” 标签页。
    • 查找 frpc.exe 是否正在运行。
  3. 查看服务状态

    • 再次打开 services.msc,确认 FrpcService 的状态为 “正在运行”

常见问题排查

  1. 服务启动失败

    • 原因1frpc.exe 路径或参数错误。
      • 解决:重新运行 nssm edit FrpcService 修改配置。
    • 原因2:权限不足。
      • 解决:确保以管理员身份操作,并在NSSM配置中勾选 “允许服务与桌面交互”(可选)。
  2. 日志记录(推荐)

    • Arguments 中添加日志参数:
      -c C:\frp\frpc.ini -log C:\frp\frpc.log
      
    • 检查 C:\frp\frpc.log 文件定位问题。
  3. 防火墙/杀毒软件拦截

    • frpc.exe 添加到防火墙和杀毒软件的白名单。

卸载服务的方法

  1. 以管理员身份运行命令行
    cd C:\Tools\nssm  # 进入NSSM目录
    .\nssm remove FrpcService confirm
    
    • 输入 y 确认删除。

总结

通过将 frpc 注册为系统服务,可实现开机无登录自启动,稳定性高且无需依赖用户会话。若需更新 frpc 版本,只需替换 frpc.exe 文件并重启服务即可。