![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221281668750.png)
FRP (Fast Reverse Proxy)是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
更多介绍请看官方文档:frp/README_zh.md at dev · fatedier/frp · GitHub
今天主要介绍用FRP实现在外网远程桌面连接访问本地没有公网IP的Windows电脑。
一、准备工作
1. 一台拥有公网 IP 的设备(云服务器、VPS ……)
主要用来一台反向代理服务器,作为外网设备访问内网设备的一座桥梁,当然你还可以用来干其他的……
VPS推荐1:Bandwagon搬瓦工VPS注册、购买和连接SSH登录教程
VPS推荐2:Vultr VPS最新注册充值购买与使用教程
2. 域名(不要也行)
如果你不想输入一大串 IP 地址的话,买个好记的域名吧。
3.注意VPS服务器的防火墙
有些VPS提供商端口有没有打开,要用到的端口需要自己到VPS服务器后台打开。
二、VPS安装配置FRP服务端(frps)
1.下载frp文件包
官方下载地址:https://github.com/fatedier/frp/releases
1.1 复制最新版本的下载连接
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221309950668.png)
SSH登录VPS服务器运行如下命令
1.2 下载
wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221323165522.png)
1.3 解压
tar -xzvf frp_0.34.3_linux_amd64.tar.gz
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221331891589.png)
1.4 切换到入解压frp文件包解压目录
cd frp_0.34.3_linux_amd64
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221342532463.png)
2.编辑FRPS配置文件
vi frps.ini
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221351424657.png)
编辑配置文件如下,按【i】键编辑,按【Esc】键退出编辑,再按 :wq 退出并保存
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = password
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221361810000.png)
#bind_port 为客户端与服务端进行通信的端口
#Dashboard可以通过浏览器查看frp的状态以及代理统计信息展示
#dashboard_port 为Dashboard面板端口
3.开机启动和后台运行
3.1 先测试一下能不能运行
./frps -c frps.ini
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221372937618.png)
窗口退出之后,程序就不运行了,我们需要开机启动并且后台运行,运行下面的命令就行(一起)
3.2 编辑frps.service
vi /etc/systemd/system/frps.service
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221383528379.png)
编辑配置文件如下,按【i】键编辑,按【Esc】键退出编辑,再按 :wq 退出并保存
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221395957251.jpg)
[Unit]
Description=frps daemon
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/frp_0.34.3_linux_amd64/frps -c /root/frp_0.34.3_linux_amd64/frps.ini
Restart= always
RestartSec=1min
[Install]
WantedBy=multi-user.target
注意ExecStart中要配置成自己的路径
完成后,可以通过下面的命令进行控制frp服务端?
启动frps:sudo systemctl start frps
打开开机自启动:sudo systemctl enable frps
重启应用:sudo systemctl restart frps
停止应用:sudo systemctl stop frps
查看应用的日志:sudo systemctl status frps
运行下面的命令启动并设置开机启动
systemctl start frps && systemctl enable frps
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221411849227.png)
到这里FRP服务端配置完成。
二、电脑(windows10)安装Frp客户端
1.下载frps客户端
下载对应的版本
官方下载地址:https://github.com/fatedier/frp/releases
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221421163619.png)
2.解压后编辑配置文件
- 首先配置一下 frpc.ini
[common]
server_addr = 80.251.215.170
server_port = 7000
[RDP]
type = tcp
local_ip = 192.168.1.5
local_port = 3389
remote_port = 7001
这里192.168.1.5是Windows局域网的IP地址,可以CMD下使用 ipconfig 命令查看
这里配置的远程端口(remote_port)要和开放的端口对应。这里指VPS主机的70001 端口映射到本机的 3389 端口。
3.运行FRP客户端
把配置文件 frpc.ini 与程序 frpc.exe 复制到内网设备。
我这里复制到C盘根目录:
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221432510424.png)
以管理员身份运行power shell
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221443288031.jpg)
切换到相应目录运行即可
cd C:\frp_0.34.3_windows_amd64
.\frpc.exe -c frpc.ini
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221469222486.png)
三、远程桌面连接
1.打开Windows远程桌面连接
首先需要开启被连接的电脑 windows10 远程桌面。打开控制面板=>系统=>高级系统设置,切换到”远程”,选择“允许远程连接到此计算机”,并勾选身份验证选项,如下图所示:
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221485620808.jpg)
输入VPS的IP:remote_port 例如:x.x.x.x:7001 冒号是英文符号
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221510277922.jpg)
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221536214770.jpg)
4、客户端开机自启动
参考文章:Windows 下任务计划程序设置 Frp 开机自动启动
题外话 温馨提示
1.注意的点
1.如果上面使用到的端口有的VPS提供商没有打开,需要自己到VPS服务器后台打开;
2.其实客户端可以放在软路由器上面,如openwrt软路由等。
2.进入Dashboard信息管理界面
Dashboard可以通过浏览器查看frp的状态以及代理统计信息展示。
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = password
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221557933055.png)
![FRP 内网穿透反向代理实现 Windows 远程桌面连接](https://www.yunpromo.com/wp-content/uploads/2023/08/638277221565994813.png)