Frp

一、最推荐的方式:使用 systemd(长期运行)

1️⃣ 放置 frps 程序和配置

假设你已经下载并解压:

/opt/frp/
 ├─ frps
 └─ frps.ini

如果还没下载:

cd /opt
wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz
tar -zxvf frp_0.61.0_linux_amd64.tar.gz
mv frp_0.61.0_linux_amd64 frp

2️⃣ 创建 systemd 服务文件

vim /etc/systemd/system/frps.service

内容如下(可直接用):

[Unit]
Description=FRP Server Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/opt/frp/frps -c /opt/frp/frps.ini
Restart=always
RestartSec=5
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

3️⃣ 启动并设置开机自启

systemctl daemon-reload
systemctl start frps
systemctl enable frps

4️⃣ 查看运行状态和日志

systemctl status frps
journalctl -u frps -f

二、快速验证 frps 是否监听成功

ss -lntp | grep frps

你应该能看到:

  • 7000(默认 frp 服务端端口)
  • 7500(dashboard,如果你开了)

三、frps.ini 示例(服务端)

[common]
bind_port = 7000

dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = strongpassword

log_file = /var/log/frps.log
log_level = info
log_max_days = 7

四、不推荐但有用:前台临时启动(测试用)

cd /opt/frp
./frps -c frps.ini

关闭终端即退出,只适合调试。


五、常见坑(你这种场景很容易踩)

1️⃣ 端口没放行(腾讯云)

需要在:

  • 安全组
  • 服务器防火墙

放行:

  • bind_port(如 7000)
  • 所有你之后映射的端口

2️⃣ frps 起了但 frpc 连不上

检查:

journalctl -u frps -n 50

常见原因:

  • token 不一致
  • frpc 版本过老
  • 公网 IP / 域名错误

是的,你的理解完全正确
Windows 上使用 WinSW-x64.exe 实现 frp(尤其是 frpc)开机自启动,这是非常标准、且生产可用的做法。

下面我按规范用法给你一套完整、可直接落地的方案。


一、WinSW 是干什么的(先统一认知)

WinSW = Windows Service Wrapper

作用:

  • 任意 exe 程序 包装成 Windows 服务

  • 支持:

    • 开机自启
    • 异常自动重启
    • 日志输出
    • 无需登录用户

👉 frpc / frps 官方推荐方案之一


二、frpc + WinSW 的标准目录结构(推荐)

例如放在:

C:\frp\
 ├─ frpc.exe
 ├─ frpc.ini
 ├─ WinSW-x64.exe
 └─ frpc-service.xml

注意:WinSW-x64.exe 必须和 xml 同名或 xml 指向它


三、配置 WinSW 的 XML(核心)

创建文件:

C:\frp\frpc-service.xml

内容示例(可直接用):

<service>
  <id>frpc</id>
  <name>FRP Client Service</name>
  <description>FRP Client auto start service</description>

  <executable>C:\frp\frpc.exe</executable>
  <arguments>-c C:\frp\frpc.ini</arguments>

  <logpath>C:\frp\logs</logpath>
  <log mode="roll" />

  <startmode>Automatic</startmode>

  <onfailure action="restart" delay="5 sec"/>
</service>

四、安装为 Windows 服务

以管理员身份打开 PowerShell / CMD

cd C:\frp
WinSW-x64.exe install

成功后你会看到:

Service installed successfully

五、启动 / 停止 / 查看状态

WinSW-x64.exe start
WinSW-x64.exe stop
WinSW-x64.exe status

或者:

services.msc

可以看到 FRP Client Service


六、验证是否真的“开机自启”

  1. 重启 Windows
  2. 登录后执行:
sc query frpc

状态应为:

STATE : 4 RUNNING

七、一些非常重要的实践建议(不是细节)

1️⃣ frpc 跑在 Windows 客户端是最合理的

  • 家用电脑
  • 内网穿透
  • 远程桌面 / NAS

2️⃣ 不要用计划任务代替

  • 计划任务在网络未就绪时容易失败
  • WinSW 更稳定

3️⃣ 不要用 root / SYSTEM 跑敏感脚本

  • frpc OK
  • 浏览器自动化 ❌

八、你现在这个整体架构是「很干净的」

从你前面的动作来看:

  • Linux:

    • frps
    • systemd
  • Windows:

    • frpc
    • WinSW

这是标准、成熟、企业级的部署方式


posted @ 2025-12-17 23:37  Josen_Earth  阅读(16)  评论(0)    收藏  举报