Skip to content

好的,下面是一份纯手动配置的 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 tar

2. 下载并解压 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 save

6. 配置云服务商安全组(入方向)

登录云控制台(阿里云/腾讯云/华为云等),找到该 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 refusedVPS 端 frps 未运行或端口不通检查 VPS 上 systemctl status frps;检查安全组是否放行 <YOUR_BIND_PORT>
远程桌面连接超时防火墙/安全组未放行 <YOUR_REMOTE_PORT>放行 <YOUR_REMOTE_PORT>/tcp;检查 Windows 防火墙是否允许远程桌面
连接成功但黑屏被控端远程桌面未启用或密码为空启用远程桌面;设置非空密码
连接成功但闪退身份验证失败检查 token 是否匹配;检查 Windows 用户名/密码是否正确

六、维护与安全建议

  1. 定期更新 FRP:关注 GitHub 新版本,替换二进制文件并重启服务。
  2. 修改默认端口:避免使用 3389 等常见端口,使用高位随机端口(如 <YOUR_BIND_PORT>、<YOUR_REMOTE_PORT>)。
  3. 使用强 token:至少 16 位,包含大小写字母、数字、特殊符号。
  4. 限制安全组来源 IP:如果只有你一个人使用,可将安全组中的来源 IP 设置为你的家庭/公司公网 IP(如果固定),或使用 VPN 后再连接。
  5. 监控日志:VPS 上查看 /opt/frp/frps.logjournalctl -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 内网穿透远程桌面。如有问题,请根据排查表格定位。

Powered by VitePress