人生就是由众多的细节组成的
正因为是个细节,所以常被人所淡忘

【win10优化系列】FRP内网穿透-远程桌面

关于FRP 内网穿透的整理过挺多的,今天再来更新下win10、win11下优化使用。

将Frp添加为系统服务并开机自启

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

应用场景

家里有台电脑,我想在外面玩的时候,想时不时使用手机远程一下我的电脑,或者在网吧远程我的电脑。

家里的宽带没有公网IP,所以就只能借助内网穿透了,恰好我有台服务器,可以使用利用FRP内网穿透。

程序结构介绍

无论是客户端还是服务端,我们都只是需要这个三个文件即可,准确来说,我们只需要frp.exe和frp.ini两个文件,另一个frp_full.ini文件是配置备份,可有可无。

frp.exe # 启动程序
frp.ini # 配置文件
frp_full.ini # 配置文件备份

配置服务端

FRP仓库地址:https://github.com/fatedier/frp/releases下载frps程序

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

解压程序包

将压缩包解压到/usr/local/下,并且将解压后的文件夹改名为frps_0.46

tar -zxvf frp_0.46.0_linux_amd64.tar.gz -C /usr/local/ && mv ./frp_0.46.0_linux_amd64 frps_0.46

删除无用的文件

进入文件夹

cd frps_0.46

删除frpc文件开头的文件,带有c的表示是客户端的文件,我们需要的是服务端的文件。

rm -rf ./frpc* && rm -rf ./LICENSE && ls

配置frps.ini

[common]
#服务器IP,0.0.0.0为服务器全局所有IP可用
bind_addr = 0.0.0.0
#通讯端口,用于和客户端内网穿透传输数据的端口,可自定义
bind_port = 8413
#通讯密钥,可自定义
token = fhfgsg424

#通过浏览器查看 frp 的状态以及代理统计信息展示端口,可自定义
# 控制面板端口
dashboard_port = 8500
#控制面板登录用户名
dashboard_user = useradmin
#控制面板登录密码
dashboard_pwd = erghweggh

# 设置日志显示级别{debug info warn error}
log_level = info

# 设置日志最大天数
log_max_days = 999

# 自启动的文件在/lib/systemd/system/frps.service

# 服务器一共需要开两个端口,两个端口都可以自定义 8413 6143 8500
# 8413 用于数据之间的传输
# 6143 用于远程桌面的时候用,比如远程地址为: 93.613.174.122:6143
# 8500 浏览器打开控制面板的端口,如93.613.174.122:8500
# 服务器需要再开一个端口6143 与本地的frp中的remote_port端口6143一致

开放端口

此操作需要管理员权限,你可以加sudo或者进入root用户操作

ufw allow 8413 comments "frps数据传输"
ufw allow 6143 comments "window远程桌面端口"
ufw allow 8500 comments "window远程桌面web控制面板"
ufw reload

另外,你还需要去服务商的安全组开放以上三个端口。如果你不需要控制面板,可以不打开8500端口

配置系统服务

此时你需要使用sudo或者进入超级管理员才能进行以下操作

vim /lib/systemd/system/frps.service

如果你的frp安装目录没有更改,按照我的方法走,下面的不需要改,如果你有更改过目录,则你需要将ExecStart的目录改为你的目录

将以下内容下入`frps.service`

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
#你的frps安装目录
ExecStart=/usr/local/frps_0.46/frps -c /usr/local/frps_0.46/frps.ini

[Install]
WantedBy=multi-user.target

启动服务

重新加载系统服务

systemctl daemon-reload

启动frps服务

systemctl start frps.service

查看frps服务状况

systemctl status frps

配置客户端

frp客户端下载地址:https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_windows_amd64.zip

我们只需要这三个文件,其他文件可以删掉

frpc.exe
frpc.ini
frpc_full.ini

配置frpc.ini

[common]
#服务端IP或者域名
server_addr = 93.613.174.122
#服务端连接端口,需要和服务端的bind_port一致
server_port = 8413
#服务端token,需要和服务端的token一致
token = fhfgsg424

#服务别名,必须唯一,不能重复
[web123]
#使用的协议
type = tcp
#本地要开放服务的IP
local_ip = 127.0.0.1
#本地要开放服务的端口
local_port = 3389
#服务端的端口,这里用的免费的服务端端口开放:5000-6000,选择其中一个,必须唯一,改端口用于远程时使用,比如在远程桌面时,输入 93.613.174.122:6143
remote_port = 6143

启动frpc
在当前目录下打开cmd,启动frp程序,输入.\frpc.exe -c .\frpc.toml。 c是小写。

PS E:\Systemtool\frp_0.44.0_windows_amd64> .\frpc.exe -c .\frpc.ini
2023/01/08 02:02:36 [I] [service.go:349] [1b80a7abee33d468] login to server success, get run id [1b80a7abee33d468], server udp port [0]
2023/01/08 02:02:36 [I] [proxy_manager.go:144] [1b80a7abee33d468] proxy added: [web123]
2023/01/08 02:02:36 [I] [control.go:181] [1b80a7abee33d468] [web123] start proxy success

window远程连接

使用其他电脑远程连接即可,端口使用6143,如果连不上,请检查服务器是否开放6143端口,还要安全组是否放行了6143端口,如果还是不行,请检查被远程的电脑是否放行6143端口入站。

后台运行客户端frpc

创建后台运行脚本(自动版)
脚本功能

每隔1个小时检测电脑是否联网,如果联网,则运行frpc脚本,如果不联网,则等待一个小时后再次检测是否联网,直到联网为止,看着似乎很耗资源的样子,实际上消耗资源并不大。并且记录联网日志。

' 设置ping的目标地址
pingTarget = "www.baidu.com"
' 设置检测间隔时间(单位:秒),下面设置半小时
Timeinterval = 1 * 1800 
' 设置日志文件名
logFileName = "C:\app\frp_0.44.0_windows_amd64\frplog.txt"
' frpc的路径地址
Dim frpPath
frpPath = "cmd /c C:\app\frp_0.44.0_windows_amd64\frpc.exe -c C:\app\frp_0.44.0_windows_amd64\frpc.ini"

' 创建WshShell对象
Set WshShell = CreateObject("WScript.Shell")

Do While True
    ' 创建文件系统对象
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    ' 打开日志文件,若不存在则新建
    Set objLogFile = objFSO.OpenTextFile(logFileName, 8, True)

    ' 执行ping命令
    Set WshExec = WshShell.Exec("ping -n 1 " & pingTarget)

    ' 获取ping结果
    Set WshOutput = WshExec.StdOut
    pingResult = WshOutput.ReadAll

    ' 检查ping结果是否包含"Reply from"
    If InStr(pingResult, "TTL") > 0 Then
        ' 网络连接正常
        objLogFile.WriteLine Now & " - 网络连接正常"

        Set locator = CreateObject("WbemScripting.SWbemLocator")
        Set service = locator.ConnectServer(".","root\cimv2")
        Set processes = service.ExecQuery("SELECT * FROM Win32_Process WHERE Name='frpc.exe'")

        If processes.Count = 0 Then
            WshShell.run frpPath ,0 ' 不在后台运行则重新启动
        End If

    Else
        ' 网络连接异常
        objLogFile.WriteLine Now & " - 网络连接异常"
    End If

    ' 关闭日志文件
    objLogFile.Close

    ' 等待指定的间隔时间
    WScript.Sleep(Timeinterval * 1000)
Loop

创建后台运行脚本(手动版)
打开C:\Users\{你电脑用户名}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup目录。

在该目录下的程序,在开机默认启动这些程序。

创建一个frpc.vbs文件。或者win+R,快速指令打开shell:startup。

文件内容如下:

set ws=wscript.createobject("wscript.shell")
ws.run "cmd /c C:\app\frp_0.44.0_windows_amd64\frpc.exe -c C:\app\frp_0.44.0_windows_amd64\frpc.ini",0

其中C:\app\frp_0.44.0_windows_amd64\frpc.exe和C:\app\frp_0.44.0_windows_amd64\frpc.ini是你的frpc客户端的文件路径,根据你自己的情况修改。

双击frpc.vbs文件脚本,自动开始运行,打开任务管理器级可以看到frpc客户端的运行情况了。

frpc.exe程序可以一直开着的,占用内存极低,几乎不占用内存>

07-frpc占用内存情况-20230206-504

Android远程Windows
远程
RD客户端:https://learn.microsoft.com/zh-cn/windows-server/remote/remote-desktop-services/clients/remote-desktop-android

蓝奏云下载:https://rookie1679.lanzoum.com/iaPpS0pw429i

打开RD客户端,右上角添加电脑,用户名称输入IP地址:端口号

07-Android远程Windows

鼠标使用方法
官方给出的教程:

鼠标模式 鼠标操作 手势
直接触摸 左键单击 单指点击
直接触摸 右键单击 单指点击并按住
鼠标指针 左键单击 单指点击
鼠标指针 左键单击并拖动 单指双击并按住,然后拖动
鼠标指针 右键单击 双指点击
鼠标指针 右键单击并拖动 双指双击并按住,然后拖动
鼠标指针 鼠标滚轮 双指点击并按住,然后向上或向下拖动
鼠标指针 缩放 双指捏合可缩小,双指分开可放大
下面简单描述一下常见的使用方法:

单击某按钮:可以直接用手指点
拖动某窗口:移动鼠标到窗口上,点两下,第三下按住不动然后开始拖动

赞(0) 打赏
未经允许不得转载:毛桃博客 » 【win10优化系列】FRP内网穿透-远程桌面

评论 抢沙发

评论前必须登录!

 

实践是学习的最佳途径

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

了解更多看平潭

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册