FRP 内网穿透部署笔记(Linux服务端+Win客户端)
闲来无事,把老家那台吃灰的笔记本拖出来透口气——顺手给 SSH 和 MySQL 开了个“公网小门”。
半小时踩完 FRP 0.64.0 的新坑,整理成这份笔记,权当备忘,也供后来人少走一段弯路。
一、FRP 是什么?
FRP(Fast Reverse Proxy) 是一个高性能的反向代理应用,用于内网穿透。
你可以用它把家里/公司/虚拟机里的服务(SSH、Web、MySQL等)暴露到公网!
本文配置仅适用于 0.64.0 及更高版本。
二、环境示例
公网服务器:rocky 8.9
内网主机:Windows 11
目标:把window 11上的内网虚拟机的 SSH(22) 映射到公网端口。
三、下载FRP
服务端 Linux(也可以手动下载再上传):
cd /opt
sudo wget https://github.com/fatedier/frp/releases/download/v0.64.0/frp_0.64.0_linux_amd64.tar.gz
sudo tar -zxvf frp_0.64.0_linux_amd64.tar.gz
sudo mv frp_0.64.0_linux_amd64 frp
cd frp客户端 Windows:
下载地址:https://github.com/fatedier/frp/releases/download/v0.64.0/frp_0.64.0_windows_amd64.zip
解压到:C:\frp
四、服务端配置
编辑配置文件 frps.toml
sudo nano /opt/frp/frps.toml粘贴下方内容并保存退出(可根据需求调整)
bindPort = 7000 # 客户端连接端口(必须开放!)
auth.token = "test123" # 认证令牌(和客户端一致!)
dashboardPort = 7500 # Web 管理界面(可选)
dashboardUser = "admin" # 登录用户名
dashboardPwd = "StrongPwd123!" # 强密码!
allowPorts = [6000-6100] # 允许映射的端口范围(安全!)五、服务端启动
编辑文件frps.service
sudo nano /etc/systemd/system/frps.service粘贴下方内容并保存退出
[Unit]
Description=FRP Server Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/frp
ExecStart=/opt/frp/frps -c /opt/frp/frps.toml
Restart=always
RestartSec=5s
LimitNOFILE=65536
[Install]
WantedBy=multi-user.targetLinux终端执行命令
sudo systemctl daemon-reload
sudo systemctl enable --now frps
sudo journalctl -u frps -f # 实时查看日志,确认启动成功日志如果出现 frps started + bind port 7000 就代表成功了。
六、客户端配置
编辑windows路径C:\frp\frpc.toml 文件
serverAddr = "8.8.8.8" # 你的公网服务器IP
serverPort = 7000 # frps 的 bindPort
auth.token = "test123" # 必须和 frps.toml 一致!
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "192.168.1.1" # 你的内网虚拟机IP
localPort = 22 # SSH 端口
remotePort = 6000 # 公网暴露端口测试启动:
windows终端执行
cd C:\frp
frpc.exe -c frpc.toml日志出现 login to server success 与 proxy added 即正常。
七、连通性验证
服务端:
sudo netstat -tuln | grep -E ':(6000)' 如果出现以下代表没问题
tcp6 0 0 :::6000 :::* LISTEN
tcp6 0 0 :::6001 :::* LISTEN本地测试公网访问:
telnet 公网IP 6000
或 ssh -p 6000 用户名@公网IP以上都没问题就代表内网穿透成功了。
七、Windows 开机自启
创建 C:\frp\start_frpc.bat
@echo off
cd /d C:\frp
:loop
frpc.exe -c frpc.toml
echo FRPC exited, restarting in 10 seconds...
timeout /t 10 >nul
goto loop任务计划程序设置:
任务计划程序 → 触发器“系统启动时” → 运行上述批处理 → 勾选用最高权限 → (勾选隐藏可在后台运行)。
重启后任务管理器确认 frpc.exe 持续运行即可。
八、常见故障速查
1. unknown field "token"
配置改为 auth.token。
2. login to server failed
检查令牌、7000 端口是否被云安全组拦截。
3. 服务端未监听 remotePort
frps 日志需出现 proxy started;若无,重启 frps 并确认防火墙。
4. [[proxies]] 语法报错
使用标准 TOML,禁用 Tab,全部空格缩进。
5.启动后闪退
配置文件路径错误 or 权限不足,用绝对路径,管理员运行。
九、安全提示
公网暴露数据库务必修改强口令,或限制来源 IP;
生产环境建议开启 useEncryption / useCompression,并配置防火墙白名单。
----------------------------------------------------------------------------------------------
保留以上步骤即可在 15 分钟内完成穿透;
若后续版本语法再变,请优先查阅官方 release note。
以上内容如有错误恳请指正。