1. 什么是 FRP 内网穿透?
FRP(Fast Reverse Proxy)是一个高性能的反向代理应用,主要用于内网穿透。它可以将内网服务暴露到公网,让你在外网也能访问到内网的 Web 服务、SSH、远程桌面等。
FRP 的核心优势:
- 开源免费,社区活跃
- 配置简单,上手快速
- 支持 TCP、UDP、HTTP、HTTPS 等多种协议
- 跨平台支持(Windows、Linux、macOS)
2. 准备工作
2.1 硬件与网络要求
- 一台 Windows 电脑(作为客户端)
- 一台具有公网 IP 的服务器(作为服务端,推荐 1核1G 以上配置,没有公网IP的服务器可以不用往下看了)
- 稳定的网络连接
2.2 软件下载
访问 FRP 官方 GitHub 仓库下载最新版本:
https://github.com/fatedier/frp/releases根据你的系统架构选择:
- Windows 64位:
frp_*_windows_amd64.zip - Windows 32位:
frp_*_windows_386.zip
这里也可以通过百度网下载
通过网盘分享的文件:frp_0.69.1_linux_amd64.tar.gz
链接: https://pan.baidu.com/s/1LcUcnLHYyxH-m6mZVipggQ?pwd=viwd 提取码: viwd
通过网盘分享的文件:frp_0.69.1_windows_amd64.zip
链接: https://pan.baidu.com/s/1wZrsJbFei8n_PeOlF784bA?pwd=ncqe 提取码: ncqe
3. 服务端配置(Linux 服务器)
3.1 安装 FRP 服务端
# 下载最新版本(以 v0.52.3 为例)wgethttps://github.com/fatedier/frp/releases/download/v0.69.1/frp_0.69.1_linux_amd64.tar.gz# 解压tar-zxvffrp_0.69.1_linux_amd64.tar.gzcdfrp_0.69.1_linux_amd64# 查看文件ls-la3.2 配置 frps.toml
注意:较新版本的 FRP 推荐使用 toml 格式的配置文件,而非旧的 ini 格式
使用文本编辑器(如 vim)编辑 frps.toml 文件:
vimfrps.toml一个最基础的配置模板如下:
[common] # frps 与 frpc 通信的端口,防火墙和安全组需要放行此端口 bind_port = 7000 auth.token = "your_strong_password" # 用于查看 frp 状态的可视化面板(可选但推荐) # web 服务端口,防火墙需放行 # Web 管理面板(独立块) [webServer] addr = "0.0.0.0" port = 7500 user = "admin" password = "your_strong_password"如果不需要 Web 面板,可以完全删掉 [webServer] 部分,不影响核心功能。
参数说明:
bind_port:服务端与客户端通信的端口。
webServer:port:管理面板端口,访问 http://你的服务器IP:7500 可查看连接状态。
auth.token:用于客户端认证的密码。
保存并退出文件(在 vim 中按 ESC,输入 :wq 回车)。
3.3 启动 FRP 服务端
方式一:前台启动(用于测试)
# 前台运行(测试用)./frps-cfrps.ini# 后台运行(生产环境)nohup./frps-cfrps.ini>frps.log2>&1&# 查看运行状态psaux|grepfrps如果看到类似 start frps success 的日志,说明启动成功。按 Ctrl + C 可以停止服务。
方式二:后台启动(推荐用于生产)
推荐使用 systemd 将 FRP 注册为系统服务,实现后台运行和开机自启
1:创建服务文件:
sudovim/etc/systemd/system/frps.service2:写入以下内容
[Unit]Description=frp serverAfter=network.target[Service]Type=simple# 请将路径替换为你的 frps 实际所在位置ExecStart=/root/frp_0.69.1_linux_amd64/frps-c/root/frp_0.69.1_linux_amd64/frps.tomlRestart=on-failure[Install]WantedBy=multi-user.target注意:ExecStart 中的路径必须是你服务器上 frps 和 frps.toml 的绝对路径
3:启动并设置开机自启
# 重新加载 systemd 配置sudosystemctl daemon-reload# 启动 frps 服务sudosystemctl start frps# 设置 frps 开机自启sudosystemctlenablefrps# 查看 frps 运行状态sudosystemctl status frps如果修改了配置,下面是重启命令
# 重启服务sudosystemctl restart frps3.4 配置防火墙和安全组
为了让外部能访问,你需要放行相关端口。
1:Linux 防火墙(firewalld/iptables):如果开启了系统防火墙,需要放行端口
# 以 firewalld 为例,放行 7000 和 7500 端口sudofirewall-cmd--permanent--add-port=7000/tcpsudofirewall-cmd--permanent--add-port=7500/tcpsudofirewall-cmd--reload2:云服务商安全组:这是最关键的一步。你需要登录云服务器管理后台(如阿里云、腾讯云等),在安全组规则中,添加入方向规则,放行 TCP 端口 7000(通信端口)和 7500(管理面板端口)
注意:重点提醒
Web 面板不是 FRP 隧道必需的,如果你只是为了暴露代理服务,即使 7500 端口不通,也不影响 FRP 客户端连接 7000 端口建立隧道。你可以先完成客户端配置和隧道测试,面板只是一个辅助监控工具。
4. 配置 Windows 客户端(frpc)
服务端通后,你需要在 Windows 电脑上配置 frpc,将本地的代理服务(如 127.0.0.1:8081)映射到云服务器的公网端口。
4.1 解压 FRP 客户端
- 下载 Windows 版 FRP(同样版本),解压。
- 编辑 frpc.toml(或 frpc.ini,取决于版本):
[common]# 云服务器公网 IPserver_addr="xxx.xx.xxx.xxx"server_port=7000# 与服务端 bind_port 一致auth.token="your_strong_token"# 与服务端 token 一致[[proxies]]name="weighbridge"type="tcp"local_ip="127.0.0.1"local_port=8081# 你的地磅代理服务端口remote_port=18081# 云服务器上对外暴露的端口(需安全组放行)4.3 启动 FRP 客户端
- 打开命令提示符(CMD)或 PowerShell
- 切换到 FRP 目录:
cd D:\frp\frp_0.69.1_windows_amd64- 启动客户端:
.\frpc.exe -c frpc.toml如果看到类似 start proxy success 的日志,表示隧道建立成功。
- 云服务器安全组放行端口
登录云控制台,在安全组规则中添加入方向 TCP 端口 18081,授权对象 0.0.0.0/0(或限制特定 IP)。
4.3 验证访问
在云服务器本地测试隧道转发
1:登录云服务器(Linux),执行:
curlhttp://127.0.0.1:18081/uic-system/api/weigh/latest?limit=5如果返回 JSON 数据,说明隧道转发正常。
1:在外网(如手机流量)访问:
http://xxx.xx.xx.xxx:18081/uic-system/api/weigh/latest?limit=5如果返回 Connection refused 或 timeout,则说明 18081 端口未被监听或未成功转发。
如果公网访问不通
请检查云服务器的防火墙和安全策略:
确认 18081 端口已在系统防火墙开放(你已经开放了 7500 和 7000,但 18081 是否开放?):
firewall-cmd --list-ports如果没有 18081,则添加:
firewall-cmd--permanent--add-port=18081/tcp firewall-cmd--reload温馨提示:
- 首次配置建议先在测试环境验证
- 生产环境务必修改默认密码和端口
- 定期检查 FRP 官方文档获取最新功能
- 加入 FRP 社区获取技术支持
通过本教程,你应该已经掌握了在 Windows 上使用 FRP 进行内网穿透的完整流程。从基础配置到高级应用,FRP 都能满足你的内网穿透需求。