使用frp搭建内网穿透Windows远程桌面的详细步骤

FRP(Fast Reverse Proxy)是一种高效的开源内网穿透工具,可通过公网服务器将内网服务(如Windows远程桌面)暴露到公网,实现远程访问。

FRP简介

FRP是一个高性能的反向代理工具,支持TCP、UDP、HTTP、HTTPS等多种协议,适用于将内网服务映射到公网,广泛用于远程桌面、Web服务、NAS访问等场景。

FRP核心配置文件

  • 服务端(frps.toml/frps.ini):配置监听端口、认证方式(如token)、管理面板等。

  • 客户端(frpc.toml/frpc.ini):配置服务端IP、端口、代理类型(如TCP)、本地服务地址及端口等。

frp使用场景

  • 远程桌面连接(如Windows RDP)。

  • 内网Web服务或API的公网访问。

  • 远程访问NAS、IoT设备等。

环境准备

  • 公网服务器:一台具有公网IP的服务器(如云服务器Ubuntu或CentOS)

  • 内网Windows设备:需要远程访问的Windows电脑,确保已启用远程桌面功能。

    • 启用方法:Win + I系统 远程桌面启用远程桌面添加允许访问的用户

  • frp下载:从GitHub Releases获取,https://github.com/fatedier/frp/releases

服务端配置(以Ubuntu为例)

步骤1:下载并安装FRP

  • 登录公网服务器,使用wget下载frp:

    cd /opt
    wget https://github.com/fatedier/frp/releases/download/v0.64.0/frp_0.64.0_linux_amd64.tar.gz

  • 解压并重命名:bash

    sudo tar -zxvf frp_0.64.0_linux_amd64.tar.gz
    mv frp_0.64.0_linux_amd64 frp
    cd frp

步骤2:编辑服务端配置文件(frps.toml)

  • 使用vim编辑frps.toml:

    vim frps.toml

  • 添加以下内容:toml

    [common]
    bind_addr = "0.0.0.0"
    bind_port = 7000
    auth.method = "token"
    auth.token = "your_secret_token" # 自定义令牌
    dashboard_addr = "0.0.0.0"
    dashboard_port = 7500
    dashboard_user = "admin"
    dashboard_pwd = "your_password"
    log.to = "/var/log/frps.log"
    log.level = "info"
    log.maxDays = 7

  • 说明:

    • bind_port:服务端监听端口,客户端将连接此端口。

    • auth.token:用于客户端和服务端认证,需保持一致。

    • dashboard_port:Web管理面板端口,可通过http://<公网IP>:7500访问。

    • 确保防火墙和云服务器安全组放行7000和7500端口。

步骤3:配置防火墙

  • 检查防火墙状态:

    	sudo firewall-cmd --state

  • 开放必要端口(如7000、7500):

    	sudo firewall-cmd --zone=public --add-port=7000/tcp --permanent
    	sudo firewall-cmd --zone=public --add-port=7500/tcp --permanent
    	sudo firewall-cmd --reload

  • 验证端口是否开放:

    	sudo firewall-cmd --zone=public --query-port=7000/tcp

步骤4:配置服务端自启动

  • 创建systemd服务文件:

    sudo vim /etc/systemd/system/frps.service

  • 添加以下内容:

    [Unit]
    Description=frp server
    After=network.target
    Wants=network.target
    [Service]
    Type=simple
    ExecStart=/opt/frp/frps -c /opt/frp/frps.toml
    Restart=on-failure
    RestartSec=3
    [Install]
    WantedBy=multi-user.target

  • 启用并启动服务:

    sudo systemctl daemon-reload
    sudo systemctl enable frps
    sudo systemctl start frps
    sudo systemctl status frps

步骤5:启动服务端

  • 前台运行(测试用):

    ./frps -c frps.toml

  • 后台运行:通过systemd启动(如上)。

客户端配置(Windows设备)

步骤1:下载并解压FRP客户端

  • 从GitHub下载Windows版本(如frp_0.64.0_windows_amd64.zip),解压到指定目录(如C:\frp),保留frpc.exe和frpc.toml。
    enter image description here

步骤2:编辑客户端配置文件(frpc.toml)

  • 编辑frpc.toml:

    [common]
    server_addr = "your_public_server_ip" # 公网服务器IP
    server_port = 7000
    auth.method = "token"
    auth.token = "your_secret_token" # 与服务端一致
    [[proxies]]
    name = "rdp"
    type = "tcp"
    localIP = "127.0.0.1"
    localPort = 3389 # Windows远程桌面默认端口
    remotePort = 6000 # 公网访问端口,需在服务端防火墙放行

  • 说明:

    • server_addr:公网服务器IP。

    • localPort:Windows远程桌面默认端口为3389。

    • remotePort:公网访问的端口,需唯一且在服务端放行。

步骤3: 确保Windows远程桌面启用

  • 检查3389端口是否监听:

    netstat -ano | findstr 3389

  • 确保Windows防火墙允许3389端口:- 打开控制面板 → 系统和安全 → Windows Defender 防火墙 → 高级设置 → 入站规则 → 新建规则,允许TCP 3389端口。

步骤4:启动客户端

  • 打开命令提示符,进入FRP目录:

    cd C:\frp
    frpc.exe -c frpc.toml

  • 成功启动后,日志显示类似:

    [I] [service.go:XXX] login to server success
    [I] [proxy_manager.go:XXX] proxy added: [rdp]
    [I] [control.go:XXX] [rdp] start proxy success

步骤5: 配置客户端自启动(使用NSSM)

如果嫌本步骤麻烦,可以直接在终端执行 .\frpc.exe -c .\frpc.toml即可启动,之后不要关闭窗口。
下载NSSMhttps://nssm.cc/download,将nssm.exe复制到C:\frp

  • 以管理员身份打开命令提示符:

    cd C:\frp
    .\nssm.exe install frpc

    enter image description here

  • 在弹出的NSSM窗口中:

    • Path:选择frpc.exe路径(如C:\frp\frpc.exe)。

    • Startup directory:设置为C:\frp

    • Arguments:输入-c frpc.toml

    • 点击Install service

  • 启动服务:

    net start frpc

  • 通过services.msc管理服务,确保开机自启。
    enter image description here
    enter image description here

远程连接测试

步骤1:在外网设备上测试

  • 打开Windows远程桌面连接(mstsc)。

    • 输入公网IP:remotePort(如your_public_server_ip:6000)。

    • 输入Windows设备的用户名和密码。

    • 连接成功后即可访问Windows桌面。
      enter image description here

步骤2:验证Web管理面板

  • 访问http://your_public_server_ip:7500,使用配置的用户名和密码登录,查看连接状态。

作者:admin  创建时间:2025-08-15 10:19
最后编辑:admin  更新时间:2025-08-15 17:57