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 任务
添加方式为: [计算机管理>系统工具>任务计划>添加基础任务]
任务设置为: 系统启动时触发、不管用户是否登陆、以最高权限启动. 期间会要求输入密码
注意
计划任务里面不能同时执行, 所以需要有先后顺序, 采用 task delay 的方式实现, 具体在[事件>修改触发器]
顺序为:
- 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