Windows auto-start for remote setup
date
Mar 28, 2022
slug
windows-auto-start
status
Published
tags
Windows
Environment
summary
用于远程的 Windows 10 + WSL2 自启动配置
type
Post
Update Apr 21, 2022
已放弃,frp 工具在拨号/网络不稳定情况下非常容易出现以下情况:
login to server failed: i/o deadline reached i/o deadline reached
Introduction
解放双手 —
Windows 在不登陆账号前提下, 自启动完成:
- 自动拨号(auto-dial-up)
- 自启动 WSL ssh
- 自启动 frpc 用于内网穿透: 微软 MRD (3389) 和 SSH (22)
适用于除断电外大多数场景, frp 参考该文
Main
环境: Frp v0.40.0
自动化基本思路
- 写 .bat 文件执行操作步骤;
- 添加计划任务用于开机自启动
不清楚的可以参考这里
具体配置
- auto-dial-up
自动拨号, 支持重连
auto-dial-up.bat
自动拨号:
rasdial
依次输入拨号名、账号、密码@echo off
:start
ping -n 2 114.114.114.114 | find "TTL=" >nul
if errorlevel 1 (
rasdial BC_Name BC_Account BC_Password
)
TIMEOUT 1
goto:start
- auto-ssh
首先需要通过
wsl --list --all
查询 WSL 名称;之后写 .bat 文件 ( 本文名称为
Ubuntu
), 用户需要注意下wsl -d Ubuntu -u root -e /etc/init.d/ssh start
- auto-fpr
frpc.ini 配置
[common]
server_addr = REMOTE
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[mrd]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 6008
auto-frpc.bat, 我的这个文件在当前目录, 其他目录则作相应调整
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
frpc.exe -c frpc.ini
goto begin
配置计划任务
如图所示, 我创建了三个相应的 auto-start 任务
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2Ff3890ece-6fd4-407c-ad86-6cc9a9abdbbe%2F6a4cbb8d-ee2b-4b24-8d85-23ce420d8448%2FUntitled.png%3Fid%3Dd47cf34d-aa3b-4939-ba31-4a8728f10962%26table%3Dblock%26spaceId%3Df3890ece-6fd4-407c-ad86-6cc9a9abdbbe%26expirationTimestamp%3D1722052800000%26signature%3DamoVXDhRGVMdNRwxis3Bg_pGfVJlcNNet0QgvHyV2fA?table=block&id=d47cf34d-aa3b-4939-ba31-4a8728f10962&cache=v2)
添加方式为: [计算机管理>系统工具>任务计划>添加基础任务]
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2Ff3890ece-6fd4-407c-ad86-6cc9a9abdbbe%2Fab931c3b-877c-48d2-b480-e438860d660a%2FUntitled.png%3Fid%3Def1a0770-2c0f-4bc2-bb41-305c79aeec36%26table%3Dblock%26spaceId%3Df3890ece-6fd4-407c-ad86-6cc9a9abdbbe%26expirationTimestamp%3D1722052800000%26signature%3DPcc-7eT6YqgSY2vAPlBHSFnxp3pSL7Ie4jm506_z0Dg?table=block&id=ef1a0770-2c0f-4bc2-bb41-305c79aeec36&cache=v2)
任务设置为: 系统启动时触发、不管用户是否登陆、以最高权限启动. 期间会要求输入密码
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2Ff3890ece-6fd4-407c-ad86-6cc9a9abdbbe%2F757c3096-af9e-4ebb-a6bb-6477cab0f252%2FUntitled.png%3Fid%3Dc1d2f34f-844b-4531-b3fc-34ad165e2dda%26table%3Dblock%26spaceId%3Df3890ece-6fd4-407c-ad86-6cc9a9abdbbe%26expirationTimestamp%3D1722052800000%26signature%3DollClazYv7h2ktLiJEgyh9KzUZtuykZ-1comk-juv_k?table=block&id=c1d2f34f-844b-4531-b3fc-34ad165e2dda&cache=v2)
注意
计划任务里面不能同时执行, 所以需要有先后顺序, 采用 task delay 的方式实现, 具体在[事件>修改触发器]
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2Ff3890ece-6fd4-407c-ad86-6cc9a9abdbbe%2F6bdfc12c-5470-4665-bb8d-e9415d764279%2FUntitled.png%3Fid%3D3a7e6dff-0878-47f4-8e98-d86736b4ade6%26table%3Dblock%26spaceId%3Df3890ece-6fd4-407c-ad86-6cc9a9abdbbe%26expirationTimestamp%3D1722052800000%26signature%3Dcmdix7kaElC6iuN-8a_p01z6GXmmrOiDgORXmlBt8NI?table=block&id=3a7e6dff-0878-47f4-8e98-d86736b4ade6&cache=v2)
顺序为:
- auto-dial-up
- auto-ssh 延迟5s
- auto-fpr 延迟10s
遇到的问题
- “端口占用”问题 [ssh] start error: port already used
排查后感觉可能还是 Frp 自身问题, 解决方式是 frpc 换一个输出端口,
[]
内的名字不需要改, 如下 :...
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # Change this port
...
Reference
- win10宽带断线如何自动重拨? - 小小小小一鸟的回答 - 知乎 https://www.zhihu.com/question/59449991/answer/522964674
- WSL2 配置SSH 设置开机自启https://blog.csdn.net/qq_30060469/article/details/118580444
- Windows 下 Frp 设置开机自动启动 https://lo-li.cn/239