通过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 文件查询日志。
![[微笑]](/face/0.gif)
![[嘻嘻]](/face/1.gif)
![[哈哈]](/face/2.gif)
![[可爱]](/face/3.gif)
![[可怜]](/face/4.gif)
![[挖鼻]](/face/5.gif)
![[吃惊]](/face/6.gif)
![[害羞]](/face/7.gif)
![[挤眼]](/face/8.gif)
![[闭嘴]](/face/9.gif)
![[鄙视]](/face/10.gif)
![[爱你]](/face/11.gif)
![[泪]](/face/12.gif)
![[偷笑]](/face/13.gif)
![[亲亲]](/face/14.gif)
![[生病]](/face/15.gif)
![[太开心]](/face/16.gif)
![[白眼]](/face/17.gif)
![[右哼哼]](/face/18.gif)
![[左哼哼]](/face/19.gif)
![[嘘]](/face/20.gif)
![[衰]](/face/21.gif)
![[委屈]](/face/22.gif)
![[吐]](/face/23.gif)
![[哈欠]](/face/24.gif)
![[抱抱]](/face/25.gif)
![[怒]](/face/26.gif)
![[疑问]](/face/27.gif)
![[馋嘴]](/face/28.gif)
![[拜拜]](/face/29.gif)
![[思考]](/face/30.gif)
![[汗]](/face/31.gif)
![[困]](/face/32.gif)
![[睡]](/face/33.gif)
![[钱]](/face/34.gif)
![[失望]](/face/35.gif)
![[酷]](/face/36.gif)
![[色]](/face/37.gif)
![[哼]](/face/38.gif)
![[鼓掌]](/face/39.gif)
![[晕]](/face/40.gif)
![[悲伤]](/face/41.gif)
![[抓狂]](/face/42.gif)
![[黑线]](/face/43.gif)
![[阴险]](/face/44.gif)
![[怒骂]](/face/45.gif)
![[互粉]](/face/46.gif)
![[心]](/face/47.gif)
![[伤心]](/face/48.gif)
![[猪头]](/face/49.gif)
![[熊猫]](/face/50.gif)
![[兔子]](/face/51.gif)
![[ok]](/face/52.gif)
![[耶]](/face/53.gif)
![[good]](/face/54.gif)
![[NO]](/face/55.gif)
![[赞]](/face/56.gif)
![[来]](/face/57.gif)
![[弱]](/face/58.gif)
![[草泥马]](/face/59.gif)
![[神马]](/face/60.gif)
![[囧]](/face/61.gif)
![[浮云]](/face/62.gif)
![[给力]](/face/63.gif)
![[围观]](/face/64.gif)
![[威武]](/face/65.gif)
![[奥特曼]](/face/66.gif)
![[礼物]](/face/67.gif)
![[钟]](/face/68.gif)
![[话筒]](/face/69.gif)
![[蜡烛]](/face/70.gif)
![[蛋糕]](/face/71.gif)