好的,下面是一份纯手动配置的 FRP 内网穿透远程桌面说明文档,不含 v2ray 相关内容,适合后续手动部署或理解原理时使用。
FRP 内网穿透远程桌面手动配置文档
一、架构说明
- VPS(云服务器):拥有公网 IP,运行 FRP 服务端(frps),监听两个端口:
bindPort:用于接收 FRP 客户端连接(如<YOUR_BIND_PORT>)。remotePort:对外提供远程桌面访问的端口(如<YOUR_REMOTE_PORT>)。
- 家中 Windows 电脑:运行 FRP 客户端(frpc),主动连接 VPS 的
bindPort,并将本机的远程桌面端口(3389)映射到 VPS 的remotePort。 - 外网设备:通过
VPS公网IP:remotePort远程桌面连接到家中电脑。
二、准备工作
1. VPS 端要求
- 操作系统:CentOS 7/8/9、RHEL 9、Ubuntu 20.04+ 等 Linux 发行版。
- 已开通 SSH 访问(root 权限)。
- 云服务商控制台可配置安全组(防火墙规则)。
2. Windows 端要求
- 操作系统:Windows 10/11 专业版及以上(家庭版不支持远程桌面服务端)。
- 启用远程桌面:设置 → 系统 → 远程桌面 → 打开“启用远程桌面”。
- 设置非空密码:当前登录账户必须有密码(空密码无法远程连接)。
3. 网络准备
- 记下 VPS 的公网 IP(例如
<YOUR_VPS_IP>)。 - 确定要使用的端口号(建议使用高位端口,如
<YOUR_BIND_PORT>、<YOUR_REMOTE_PORT>),避免与常见服务冲突。
三、VPS 端手动配置步骤
1. 安装必要工具(如缺失)
bash
# CentOS / RHEL
sudo yum install -y wget tar
# Ubuntu / Debian
sudo apt update && sudo apt install -y wget tar2. 下载并解压 FRP 服务端
bash
cd /opt
sudo wget https://github.com/fatedier/frp/releases/download/v0.61.2/frp_0.61.2_linux_amd64.tar.gz
sudo tar -zxvf frp_0.61.2_linux_amd64.tar.gz
sudo mv frp_0.61.2_linux_amd64 frp
cd frp版本号可去 FRP Releases 查看最新版,替换
v0.61.2。
3. 编辑服务端配置文件
创建 frps.toml(新版本使用 toml 格式):
bash
sudo vi frps.toml粘贴以下内容(请修改 auth.token 为强密码):
toml
bindPort = <YOUR_BIND_PORT>
auth.method = "token"
auth.token = "你的强密码_例如<YOUR_STRONG_TOKEN>"
# 可选 Web 管理界面(建议不开放外网,仅本机查看)
# webServer.addr = "0.0.0.0"
# webServer.port = <YOUR_DASHBOARD_PORT>
# webServer.user = "admin"
# webServer.password = "你的管理密码"保存退出(:wq)。
4. 启动服务端并设置开机自启
方式一:使用 systemd(推荐)
创建服务文件:
bash
sudo vi /etc/systemd/system/frps.service内容:
ini
[Unit]
Description=FRP Server
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/frp/frps -c /opt/frp/frps.toml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target启动并启用:
bash
sudo systemctl daemon-reload
sudo systemctl start frps
sudo systemctl enable frps
sudo systemctl status frps # 确认 active (running)方式二:手动后台运行(仅测试)
bash
sudo nohup /opt/frp/frps -c /opt/frp/frps.toml > /opt/frp/frps.log 2>&1 &5. 配置防火墙(本机)
bash
# 如果使用 firewalld(CentOS/RHEL 默认)
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-port=<YOUR_BIND_PORT>/tcp
sudo firewall-cmd --permanent --add-port=<YOUR_REMOTE_PORT>/tcp
sudo firewall-cmd --reload
# 如果使用 iptables(Ubuntu 等)
sudo iptables -I INPUT -p tcp --dport <YOUR_BIND_PORT> -j ACCEPT
sudo iptables -I INPUT -p tcp --dport <YOUR_REMOTE_PORT> -j ACCEPT
# 保存规则(不同系统命令不同,以 Ubuntu 为例)
sudo netfilter-persistent save6. 配置云服务商安全组(入方向)
登录云控制台(阿里云/腾讯云/华为云等),找到该 VPS 的安全组,添加入站规则:
- 端口:
<YOUR_BIND_PORT>,协议:TCP,来源:0.0.0.0/0(或你信任的 IP 段) - 端口:
<YOUR_REMOTE_PORT>,协议:TCP,来源:0.0.0.0/0
如果不放行,外部无法连接 FRP 控制端口和远程桌面端口。
四、Windows 端手动配置步骤
1. 下载 FRP 客户端
- 访问 FRP Releases
- 下载
frp_0.61.2_windows_amd64.zip(根据系统架构选择) - 解压到
C:\frp(或其他目录,路径不要有中文)
2. 编辑客户端配置文件
在 C:\frp 文件夹中,新建文本文档,命名为 frpc.toml。用记事本打开,粘贴以下内容:
toml
serverAddr = "你的VPS公网IP" # 例如 <YOUR_VPS_IP>
serverPort = <YOUR_BIND_PORT> # 与服务端 bindPort 一致
auth.method = "token"
auth.token = "你的强密码" # 与服务端 auth.token 一致
[[proxies]]
name = "rdp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389 # 本机远程桌面默认端口
remotePort = <YOUR_REMOTE_PORT> # 外网访问远程桌面的端口保存,确保文件扩展名为 .toml(不是 .txt)。
3. 运行 FRP 客户端
- 双击
C:\frp\frpc.exe。 - 会弹出一个黑色命令行窗口,显示类似
[I] [proxy_manager.go:...] proxy added: [rdp]的日志。 - 保持窗口不要关闭。关闭窗口则客户端退出,远程连接会断开。
4. (可选)配置开机自启
创建一个批处理文件 start_frp.bat,内容:
batch
@echo off
cd /d "C:\frp"
start /b frpc.exe -c frpc.toml
exit按 Win + R,输入 shell:startup,将 start_frp.bat 复制到打开的文件夹中。
下次开机时会自动启动 FRP 客户端(黑色窗口一闪而过)。
5. 测试远程桌面
在另一台联网的电脑上(或手机):
- 按
Win + R,输入mstsc打开远程桌面。 - 在“计算机”栏输入:
你的VPS公网IP:<YOUR_REMOTE_PORT>,例如<YOUR_VPS_IP>:<YOUR_REMOTE_PORT>。 - 点击“连接”,输入家中 Windows 电脑的用户名和密码(非空密码)。
- 成功即可看到桌面。
五、常见问题排查
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 客户端双击闪退 | 配置文件错误 | 打开 cmd,cd 到目录,手动运行 frpc.exe -c frpc.toml 查看错误信息 |
客户端显示 connect refused | VPS 端 frps 未运行或端口不通 | 检查 VPS 上 systemctl status frps;检查安全组是否放行 <YOUR_BIND_PORT> |
| 远程桌面连接超时 | 防火墙/安全组未放行 <YOUR_REMOTE_PORT> | 放行 <YOUR_REMOTE_PORT>/tcp;检查 Windows 防火墙是否允许远程桌面 |
| 连接成功但黑屏 | 被控端远程桌面未启用或密码为空 | 启用远程桌面;设置非空密码 |
| 连接成功但闪退 | 身份验证失败 | 检查 token 是否匹配;检查 Windows 用户名/密码是否正确 |
六、维护与安全建议
- 定期更新 FRP:关注 GitHub 新版本,替换二进制文件并重启服务。
- 修改默认端口:避免使用 3389 等常见端口,使用高位随机端口(如 <YOUR_BIND_PORT>、<YOUR_REMOTE_PORT>)。
- 使用强 token:至少 16 位,包含大小写字母、数字、特殊符号。
- 限制安全组来源 IP:如果只有你一个人使用,可将安全组中的来源 IP 设置为你的家庭/公司公网 IP(如果固定),或使用 VPN 后再连接。
- 监控日志:VPS 上查看
/opt/frp/frps.log或journalctl -u frps,发现异常连接及时调整。
七、完整示例参数(供复制)
VPS 端 frps.toml
toml
bindPort = <YOUR_BIND_PORT>
auth.method = "token"
auth.token = "<YOUR_STRONG_TOKEN>"Windows 端 frpc.toml
toml
serverAddr = "<YOUR_VPS_IP>"
serverPort = <YOUR_BIND_PORT>
auth.method = "token"
auth.token = "<YOUR_STRONG_TOKEN>"
[[proxies]]
name = "rdp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389
remotePort = <YOUR_REMOTE_PORT>安全组规则
- 入站 TCP
<YOUR_BIND_PORT> - 入站 TCP
<YOUR_REMOTE_PORT>
远程桌面地址
<YOUR_VPS_IP>:<YOUR_REMOTE_PORT>
本文档已完成,按照上述步骤手动操作即可成功配置 FRP 内网穿透远程桌面。如有问题,请根据排查表格定位。