通过frp实现内网穿透,完成windows远程桌面连接并添加开机自启动
前置条件
- 带公网 IP 的服务器
- windows 电脑
- 其他设备(用于测试远程效果,手机也可以)
安装 frps
在服务器上安装 frp,这里我们采用 docker 安装方式(未安装 docker 前往搜索)。
也许有伙伴担心小水管承受不了,但是作者的实际使用来看
在同时运行系统和这些容器的情况下,总的内存消耗也只有 1GB,完全不用太担心。
运行容器
直接使用现有的镜像,它会在运行容器时,自动安装最新版本的 frps
bash
docker pull snowdreamtech/frps
镜像文档仍然使用.ini
作为配置文件,新版本的 frp 使用.toml
作为配置文件后缀了。
创建配置文件
bash
mkdir -p /opt/frp && vim /opt/frp/frps.toml
接着输入下面的内容,按需修改
toml
[common]
# 监听端口
bind_port=211
# web端口
dashboard_port=212
# web登录账号
dashboard_user=imzbf
dashboard_pwd=123456
# http及https的代理端口
vhost_http_port=213
vhost_https_port=214
# 客户端身份验证,尽量复杂
token=S4CQ0Psz4mcZy1Lk
运行容器
bash
docker run --restart=always --network host -d -v /opt/frp:/etc/frp --name frps snowdreamtech/frps
安装 frpc
客户端的 frp 就不运行 docker 容器了,后面需要创建启动任务。
直接下载压缩包:frp_0.58.1_windows_amd64.zip,或者前往发布页下载最新版本:https://github.com/fatedier/frp/releases
下载完成后解压到合适的目录,比如D:\frpc
,只需要保留frpc.exe
和frpc.toml
文件,其他的不需要。
内容杀毒软件可能会报错,记得添加到信任区。
打开frpc.toml
文件,输入下面的内容
toml
[common]
# 服务器IP地址或者域名
server_addr=server.com
# 服务端监听端口,与上面的bind_port要一致
server_port=211
# 与上面的token一致
token=S4CQ0Psz4mcZy1Lk
[RemoteDesktop]
# 连接的类型
type=tcp
# 本地IP,我们这里是需要远程桌面的windows IP
local_ip=127.0.0.1
# 目标端口,远程桌面端口是3389
local_port=3389
# 绑定到服务器的端口
remote_port=310
至此可以启动,测试是否连接正常了
bash
frpc -c frpc.toml
打开 Microsoft Remote Desktop,PC name 为公网IP或域名:绑定的服务器端口
,示例:server.com:310
。目前这个软件要求 windows 系统用户必须设置密码。
新建启动脚本
在D:\frpc
下新建start_frpc.bat
文件,以文本的方式打开,输入下面的内容
bat
@echo off
cd /d D:\frpc
setlocal enabledelayedexpansion
:: 获取当前日期和时间
set "datetime=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%"
set "datetime=%datetime: =0%" :: 将空格替换为0
:: 日志文件路径
set "logfile=D:\frpc\logs\frpc_%datetime%.log"
:: 确保日志目录存在
if not exist D:\frpc\logs mkdir D:\frpc\logs
:: 切换到frp目录并运行frpc,输出重定向到日志文件
frpc -c frpc.toml > "!logfile!" 2>&1
pause
由于后面设置自启动后,不会显示弹窗和日志,所以我们需要将每次启动的日志写道 logs 文件夹下面,验证启动状态。
现在只需要双击脚本即可立刻运行客户端,并且生成日志文件。
设置开机启动
在 Windows 中打开搜索,输入"任务计划程序",并打开

创建任务

常规设置

设置名称:开机启动 FRP 客户端;勾选不管用户是否登录都要运行;勾选使用最高权限运行;配置选择 Windows 10
添加触发器
切换到触发器 tab,点击左下角 新增 按钮

开始任务选择“启动时”;延迟任务时间选择“30 秒”或者更长(使用到网络,如果需要连接 wifi 等,要等待网络连接后运行);勾选已启用。
新增操作
切换到操作 tab,点击左下角 新增 按钮

操作选择“启动程序”;程序或脚本点击浏览选择刚刚创建的 bat 脚本;参数不填;起始于填脚本所在位置。
条件设置

只需要勾选“唤醒计算机运行此任务”
设置

勾选“允许按需运行任务”;勾选“如果任务失败,按照以下频率重新启动”,并选择合适的时间。
保存这个配置,重新启动电脑即可,再次使用远程桌面软件测试,如果失败,打开 logs 文件查询日志。