使用 frp 实现 windows 远程

前提条件:

拥有一台公网 ip 的服务器;

被远程控制的 windows 系统为专业版(家庭版的其它方式没有尝试过);

frp 下载包及使用说明

frp release 包的下载网址:https://github.com/fatedier/frp/releases
中文使用说明:https://gofrp.org/zh-cn/

x86_64 架构选择 amd64 即可;

在服务器上配置 frp

使用 ssh 登录服务器,切换为 root 权限;

# 进入 /opt 目录
cd /opt# 2023-03-01 最新的版本为:0.54.0
# 下载 frp linux 包,我使用的是 x86_64 的 ubuntu 系统。
# 所以选择的下载命包为:frp_0.54.0_linux_amd64.tar.gz
# 使用 wget 下载,命令如下;下载不成功可以多尝试几次;
wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz# 解压文件
tar -xzvf frp_0.54.0_linux_amd64.tar.gz# 重命名 frp_0.54.0_linux_amd64 为 frp
mv frp_0.54.0_linux_amd64 frp# 将 frps 移动到系统执行目录
mv frp/frps /usr/bin/frps# 创建 frps.toml 配置文件,并填写内容如下
mkdir /etc/frp
vi /etc/frp/frps.toml

frps.toml 文件内容如下

# 客户端需要访问的端口,可以随意修改
bindPort = 6666# 授权方式
auth.method = "token"
# 授权码,请改成更复杂的
auth.token = "aaaaa"# dashboard 服务配置,"0.0.0.0" 为本机所有 ip
webServer.addr = "0.0.0.0"
# dashboard 配置的端口,可以随意修改
webServer.port = 6667
# dashboard 配置的用户名和密码,修改成自己的
webServer.user = "bbbbb"
webServer.password = "ccccc"

在服务器的平台上,将上述端口(6666、6667)开放出来;

端口开放界面如下图:

运行 frps 服务;

# 前台运行
frps -c /etc/frp/frps.toml# 关闭当前服务
Ctrl + c 「快捷键」

测试 frps 服务

# 打开浏览器输入 服务器ip:dashboard端口
例:
139.224.227.14:6667

输入上面配置的用户名和密码登录;

出现以下内容界面 frps 配置 ok,如果没有出现建议百度解决;测试成功后,使用 Ctrl + c 将服务退出即可;

使用 systemd 来使 frps 服务自启动

参考说明:使用 systemd | frp

安装 systemd

1. 安装 systemd

如果您的 Linux 服务器上尚未安装 systemd,可以使用包管理器如 yum(适用于 CentOS/RHEL)或 apt(适用于 Debian/Ubuntu)来安装它:

# 使用 yum 安装 systemd(CentOS/RHEL)
yum install systemd# 使用 apt 安装 systemd(Debian/Ubuntu)
apt install systemd

2. 创建 frps.service 文件

使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务。

vi /etc/systemd/system/frps.service

写入内容

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.toml[Install]
WantedBy = multi-user.target

3. 使用 systemd 命令管理 frps 服务

# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps

4. 设置 frps 开机自启动

systemctl enable frps

开启 windows 系统的远程功能

win10 系统

win + i 快捷键;点击系统

点击用户账户可以知道 windows 远程的用户名;一般为邮箱,密码一般为微软账号密码;

win11 系统

win + i 快捷键;点击系统,里面有远程桌面

点击远程桌面用户可以知道访问权的账户,如下示例:账户为 Tao,我的远程密码为 pin 码;

临时远程工具

可以临时使用 todesk、向日葵之类的软件来暂时远程配置电脑;

在 windows 上配置 frp,使用 stcp 的方式「配置文件方式一」

两台电脑(控制与被控制的电脑)都需要这样操作;

在 release 网站中下载合适的包 Releases · fatedier/frp · GitHub

我下载的是:frp_0.54.0_windows_amd64.zip

下载过程中浏览器和电脑防火墙会报毒,选择允许在磁盘上即可;

解压后,防火墙会报毒,然后删文件,选择允许在磁盘上,并还原删除的文件即可;

在电脑 c 盘根目录建一个 frp 文件夹,并将解压后的文件 frpc.exe 放入该目录;

# 在 frpc.exe 同级目录下,新建一个 start.txt 文件;
# 用记事本或其它软件打开 start.txt,填写内容如下:
@echo off
:home
frpc -c frpc.toml
goto home

将 start.txt 修改为 start.bat 即可;

在被控制的电脑上配置 frpc

在 frpc.exe 同级目录下,新建一个 frpc.toml 文件;

用记事本或其它软件打开 frpc.toml,填写内容如下:

# 服务器 ip 与端口配置
serverAddr = "139.224.227.14"
serverPort = 6666# 服务器 token 配置
auth.method = "token"
auth.token = "aaaaa"## 配置本地的端口接听,name 对于访问者来说就是 serverName
[[proxies]]
name = "stcp-home"
type = "stcp"
secretKey = "liangtao1996"
# 本地需要访问的 ip 与端口
localIP = "127.0.0.1"
localPort = 3389
## 配置本地的端口接听结束

在控制的电脑上配置 frpc

在 frpc.exe 同级目录下,新建一个 frpc.toml 文件;

用记事本或其它软件打开 frpc.toml,填写内容如下:

# 服务器 ip 与端口配置
serverAddr = "139.224.227.14"
serverPort = 6666# 服务器 token 配置
auth.method = "token"
auth.token = "aaaaa"## 访问者的配置
[[visitors]]
name = "stcp-vcompany"
type = "stcp"
serverName = "stcp-home"
secretKey = "liangtao1996"
bindAddr = "127.0.0.1"
bindPort = 6000
## 访问者的配置完毕

运行 frpc 服务

在两台电脑上分别双击 start.bat;frpc 服务就会运行;此时不关闭 cmd 窗口;

在控制的电脑上执行快捷键 win + r

输入 mstsc 回车

 

会出现以下界面

输入 127.0.0.1:6000 回车后,输入被控制电脑的用户名和凭据,即可进行 windows 远程;

这样就能远程内网的电脑了;

在 windows 上配置 frp,使用 xtcp 的方式「配置文件方式二」

xtcp 不一定成功,与 stcp 的配置文件的差别就是将 stcp 修改为 xtcp 即可。

xtcp 远程的流量不经过云服务器。

在被控制的电脑上配置 frpc

frpc.toml 文件修改如下:

# 服务器 ip 与端口配置
serverAddr = "139.224.227.14"
serverPort = 6666# 服务器 token 配置
auth.method = "token"
auth.token = "aaaaa"## 配置本地的端口接听,name 对于访问者来说就是 serverName
[[proxies]]
name = "xtcp-home"
type = "xtcp"
secretKey = "liangtao1996"
# 本地需要访问的 ip 与端口
localIP = "127.0.0.1"
localPort = 3389
## 配置本地的端口接听结束

在控制的电脑上配置 frpc

frpc.toml 文件修改如下:

# 服务器 ip 与端口配置
serverAddr = "139.224.227.14"
serverPort = 6666# 服务器 token 配置
auth.method = "token"
auth.token = "aaaaa"## 访问者的配置
[[visitors]]
name = "xtcp-vcompany"
type = "xtcp"
serverName = "xtcp-home"
secretKey = "liangtao1996"
bindAddr = "127.0.0.1"
bindPort = 6000
## 访问者的配置完毕

在 windows 上配置 frp,使用 xtcp 与 stcp 的方式「配置文件方式三」

在官方的手册上给出了 xtcp 不行的时候转为 stcp 方式的配置;

参考链接:XTCP | frp

控制与被控制的电脑完全可以配置调转来实现反控制,所以修改如下,可以两台电脑相互控制。

在被控制的电脑上配置 frpc

frpc.toml 文件修改如下:

# 服务器 ip 与端口配置
serverAddr = "139.224.227.14"
serverPort = 6666# 服务器 token 配置
auth.method = "token"
auth.token = "aaaaa"# 先试用 xtcp 打洞,失败后尝试使用 stcp
[[visitors]]
name = "stcp-vhome"
type = "stcp"
serverName = "stcp-company"
secretKey = "liangtao1996"
bindPort = -1[[visitors]]
name = "xtcp-vhome"
type = "xtcp"
serverName = "xtcp-company"
secretKey = "liangtao1996"
bindAddr = "127.0.0.1"
bindPort = 6000
fallbackTo = "stcp-vhome"
fallbackTimeoutMs = 200
# stcp、xtcp 客户端配置完毕# 配置本地的端口接听
[[proxies]]
name = "xtcp-home"
type = "xtcp"
secretKey = "liangtao1996"
localIP = "127.0.0.1"
localPort = 3389[[proxies]]
name = "stcp-home"
type = "stcp"
secretKey = "liangtao1996"
localIP = "127.0.0.1"
localPort = 3389
# 配置本地的端口接听结束

在控制的电脑上配置 frpc

frpc.toml 文件修改如下:

# 服务器 ip 与端口配置
serverAddr = "139.224.227.14"
serverPort = 6666# 服务器 token 配置
auth.method = "token"
auth.token = "aaaaa"# 先试用 xtcp 打洞,失败后尝试使用 stcp
[[visitors]]
name = "stcp-vcompany"
type = "stcp"
serverName = "stcp-home"
secretKey = "liangtao1996"
bindPort = -1[[visitors]]
name = "xtcp-vcompany"
type = "xtcp"
serverName = "xtcp-home"
secretKey = "liangtao1996"
bindAddr = "127.0.0.1"
bindPort = 6000
fallbackTo = "stcp-vcompany"
fallbackTimeoutMs = 200
# stcp、xtcp 客户端配置完毕# 配置本地的端口接听
[[proxies]]
name = "xtcp-company"
type = "xtcp"
secretKey = "liangtao1996"
localIP = "127.0.0.1"
localPort = 3389[[proxies]]
name = "stcp-company"
type = "stcp"
secretKey = "liangtao1996"
localIP = "127.0.0.1"
localPort = 3389
# 配置本地的端口接听结束

在 windows 上配置 frpc 自启动

建议将 frpc.exe 添加到防火墙的忽略文件中

 点击「病毒和威胁防护」=>「管理设置」

点击「添加或删除排除项」=> 「添加排除项」

设置自启动

过程如下:

1. win 键,输入 任务计划程序2. 点击 操作 => 创建任务3. 名称填 frpc选择 不管用户是否登录都有运行(W)勾选 不存储密码(P)。该任务只有访问本地计算机资源的权限。勾选 使用最高权限运行(I)勾选 隐藏(E) 配置(C):Windows 104. 点击 触发器点击 新建(N)开始任务(G):启动时勾选延迟任务时间(K):30秒点击 确定5. 点击 操作点击 新建(N)程序或脚本(P):填写或选择路径为:C:\frp\start.bat起始于(可选)(T):填写目录为 C:\frp6. 点击 条件勾选 只有在计算机使用交流电源时才启动此任务(P)勾选 如果计算机改用电池电源,则停止(B)勾选 只有在以下网络连接可用时才启动(Y)任何连接点击 确定

设置好后,重启电脑,即可在任务管理器中看到 frpc 正在运行中;

frps.toml 以及 frpc.toml 参考

# frpc.toml 参考
https://github.com/fatedier/frp/blob/dev/conf/frpc_full_example.toml# frps.toml 参考
https://github.com/fatedier/frp/blob/dev/conf/frps_full_example.toml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/506552.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅析this指针

浅析this指针 文章目录 浅析this指针前言this指针作用this指针使用注意事项总结 前言 ​ 在面向对象的编程语言中,this指针是一个自引用指针,通常用于指向对象自身。通过这篇文章,我们将探讨this指针的核心特性、应用场景和相关案例。 this指…

[GYCTF2020]EasyThinking --不会编程的崽

看标题就知道,这大概率是关于thinkphp的题目。先尝试错误目录使其报错查看版本号 thinkphp v6.0.0,在网上搜索一下,这个版本有一个任意文件上传漏洞。参考以下文章。 https://blog.csdn.net/god_zzZ/article/details/104275241 先注册一个账…

基于stm32F103的座面声控台灯

1.基本内容: 设计一个放置在桌面使用的台灯,使用220v交流电供电。具备显示屏能够实时显示日期(年、月、日和星期),时间(小时、分钟、秒)和温度(摄氏度);能够通…

JAVAEE初阶 JVM(二)

垃圾回收和双亲委派模型 1.双亲委派模型2.垃圾回收机制(1) 识别垃圾1.引用计数2.可达性分析 (2) 销毁垃圾1.标记清除2.复制算法3.标记整理 3.分代回收 1.双亲委派模型 描述了如何查找.class文件的策略. 同时JVM中有专门进行类加载的操作,有一个模块,叫做类加载器. 上述就是为了…

云原生架构技术揭秘:DevOps 技术打破开发运维壁垒,实现持续交付的变革之道

DevOps 是一套将软件开发(Development,Dev)和系统运维(Operations,Ops)相结合的实践,旨在缩短应用系统开发生命周期,提供高质量的持续交付。 —— 维基百科 DevOps 0、讲在前面 生…

STM32 HAL I2C使用

1、使用i2c的引脚要设置成开漏输出,以防止烧坏芯片。 2、开漏输出可以将驱动器中的P-MOS失能,只有N-MOS工作。防止如果有两个i2c外设,一个要输出高电平,一个要输出低电平而形成短路状态。 1、驱动oled屏幕 1.1、配置 对照原…

*JAVAWEB--maven*

一:介绍: maven是一种专门管理以及构建JAVA项目的一个工具,maven屹立这么久也是因为其有三个非常好用的功能: 1.提供标准化的项目结构 比方说平时我们编写JAVA项目的时候,如果想把原本在eclipse当中编写的项目导入到IDEA当中进行使用,就会导致报错,因为这两个的项目结构并不一样…

使用最新Hal库实现USART中断收发功能(STM32F4xx)

目录 概述 1 认识STM32F4XX的USART 1.1 USART 功能说明 1.2 USART的中断 1.3 USART 模式配置 1.4 USART的寄存器 2 使用STM32CubeMX 生成工程 2.1 配置参数 2.2 生成工程代码 3 实现软件功能 3.1 软件功能介绍 3.2 认识USART Hal库 3.2.1 初始化函数组 3.2.2 发送…

解决:Information:java: javacTask: 源发行版 8 需要目标发行版 1.8

解决:Information:java: javacTask: 源发行版 8 需要目标发行版 1.8 先点击 Project Structure 查看jdk是否为1.8版本 我这jdk版本为1.8版本的,但还是运行还是报错 据以上错误显示以及上述配置,我选择的编译器是jdk1.8的,但是在i…

【Java基础系列】时间戳

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Yapi部署

【GO开发工程师】Yapi部署 推荐个人主页:席万里的个人空间 文章目录 【GO开发工程师】Yapi部署1、Yapi部署 1、Yapi部署 初始化yapi: git clone https://github.com/Ryan-Miao/docker-yapi.git cd docker-yapi docker-compose upyapi启动失败 1.cd进入…

【Scratch画图100例】图49-scratch绘制直角风车 少儿编程 scratch编程画图案例教程 考级比赛画图集训案例

目录 scratch绘制直角风车 一、题目要求 1、准备工作 2、功能实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、实现流程 1、案例分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 …