在Windows系统上使用FRP(Fast Reverse Proxy)可以有效地实现内网穿透,将本地服务暴露到公网,方便远程访问或提供服务,FRP由客户端(frpc)和服务端(frps)两部分组成,服务端通常部署在具有公网IP的云服务器上,而客户端则安装在需要穿透内网的本地机器(如Windows电脑)上,以下将详细介绍在Windows上使用FRP的完整流程,包括环境准备、配置文件编写、服务启动及常见问题处理。

FRP环境准备
在开始使用FRP之前,需要先完成基础的准备工作,访问FRP的官方GitHub仓库(https://github.com/fatedier/frp/releases),下载最新版本的FRP压缩包,根据Windows系统的架构(64位或32位),选择对应的frp_版本号_windows_amd64.zip或frp_版本号_windows_386.zip文件下载并解压,解压后会得到frpc.exe(客户端)、frps.exe(服务端)、frpc.ini(客户端配置文件)和frps.ini(服务端配置文件)等核心文件。
确保本地Windows电脑能够访问公网,且服务端云服务器已开放相应端口(默认为7000用于服务端通信,8080用于HTTP代理等,具体可根据配置调整),如果本地电脑有防火墙或杀毒软件,需提前允许frpc.exe的网络访问权限,避免连接被拦截。
服务端(frps)配置
服务端配置是FRP运行的基础,通常在云服务器上进行,虽然本文重点介绍Windows客户端,但简要了解服务端配置有助于理解整体流程,编辑frps.ini文件,基本配置示例如下:
[common] bind_port = 7000 vhost_http_port = 8080 token = your_secure_token
bind_port是服务端监听客户端连接的端口,vhost_http_port用于HTTP类型的穿透,token是客户端与服务端通信的验证密钥,必须保持一致,配置完成后,在云服务器上运行./frps -c frps.ini启动服务端,并确保其后台持续运行(可使用nohup或systemd管理)。
客户端(frpc)配置
客户端配置是Windows用户的核心操作,编辑frpc.ini文件,根据需要穿透的服务类型添加对应配置,以下是常见场景的配置示例:
本地Web服务穿透
若需将本地HTTP服务(如IIS、Apache或本地开发服务器)暴露到公网,可配置如下:

[common] server_addr = your_server_ip server_port = 7000 token = your_secure_token [web] type = http local_port = 8080 custom_domains = yourdomain.com
server_addr和server_port为服务端的公网IP和端口,local_port为本地服务的端口号,custom_domains需提前解析到服务器的公网IP。
本地SSH远程访问
若需通过公网远程访问Windows电脑的SSH服务(需提前开启OpenSSH或类似工具),配置如下:
[common] server_addr = your_server_ip server_port = 7000 token = your_secure_token [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000
remote_port是服务端监听的端口,通过公网IP的server_ip:6000即可访问本地SSH服务。
TCP/UDP通用穿透
对于其他TCP/UDP服务(如远程桌面、游戏服务器等),可调整type为tcp或udp,并配置对应的local_port和remote_port。
客户端服务启动与管理
配置完成后,可通过命令行启动FRP客户端,打开Windows的CMD或PowerShell,切换到FRP解压目录,执行以下命令:
frpc -c frpc.ini
若配置正确,客户端将成功连接到服务端,并显示连接日志,为避免手动关闭导致服务中断,建议将FRP客户端设置为Windows服务运行,可使用nssm(Non-Sucking Service Manager)工具,执行以下命令安装服务:

nssm install frpc "C:\path\to\frpc.exe" "-c C:\path\to\frpc.ini" nssm start frpc
安装后,可通过services.msc管理FRP服务,实现开机自启或手动控制。
常见问题与优化
在使用过程中,可能会遇到连接失败、穿透不稳定等问题,首先检查服务端和客户端的token是否一致,端口是否开放,防火墙是否拦截,若公网访问较慢,可尝试启用FRP的压缩功能(在frpc.ini中添加compression = true)或切换服务器的网络线路,对于长期运行的服务,建议定期查看FRP日志(默认在控制台输出,可重定向到文件),及时发现并处理异常。
相关问答FAQs
Q1: 如何在Windows上实现FRP客户端开机自启?
A: 可通过两种方式实现:一是使用任务计划程序,创建一个“启动时触发的任务”,操作选择frpc.exe并添加参数-c frpc.ini;二是使用nssm工具将FRP安装为系统服务(如上文第四部分所述),服务设置中可勾选“自动启动”。
Q2: FRP穿透后访问速度慢怎么办?
A: 可尝试以下优化措施:1. 在服务端配置中启用kcp协议(需修改frps.ini添加kcp_bind_port = 7000并在客户端配置protocol = kcp),提升传输效率;2. 检查本地网络是否占用过高,关闭不必要的后台程序;3. 选择更低延迟的云服务器节点;4. 对于HTTP服务,启用gzip压缩减少数据传输量。