Windows 环境下配置 SSH 端口转发开机隐蔽自启指南
本文最后更新于26 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

文档说明

本指南用于在 Windows 电脑上,通过 SSH 隧道将本地端口转发至远程服务器的本地端口,并配置该连接在 Windows 开机时自动、无黑框在后台运行,且具备断线自动重连功能。

适用环境:Windows 10 / Windows 11 (内置 OpenSSH)

第一阶段:配置 SSH 免密登录

说明:开机自动运行的程序无法进行弹窗交互,因此必须配置基于密钥的免密登录。

1. 生成 SSH 密钥对

打开 Windows 的命令提示符 (CMD)。输入以下命令并回车:

ssh-keygen -t rsa -b 4096

遇到所有提示(如保存路径、密码设置等),一律直接按回车键,使用默认设置且不设置密码。

2. 将公钥发送至远程服务器

继续在 CMD 中输入以下完整命令并回车(将 user@remote_host 替换为你的实际用户名和服务器地址):

type %USERPROFILE%\.ssh\id_rsa.pub | ssh user@remote_host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

注意:执行此命令时,系统会要求输入一次远程服务器的登录密码。

3. 测试免密连接

在 CMD 中输入:

ssh user@remote_host

如果无需输入密码即可成功登录服务器终端,则说明免密配置成功。输入 exit 退出连接。

第二阶段:创建自动重连批处理脚本

说明:编写一个 .bat 脚本,用于建立 SSH 隧道并在网络断开时自动重连。

1. 创建工作目录

C:\ 根目录(或其他不易被误删的位置)新建一个文件夹,命名为 SSH_Tunnel

2. 编写脚本文件

在该文件夹内新建一个文本文档,重命名为 ssh-tunnel.bat(请确保在系统视图中开启了”显示文件扩展名”,务必删掉隐藏的 .txt 后缀)。

右键编辑该文件,粘贴以下代码并保存(请根据你的实际情况修改端口和服务器地址):

@echo off
:loop
:: -N: 仅转发端口,不打开远程终端
:: ServerAlive 参数: 用于检测断线,超时后自动结束当前连接
:: 本地端口:LOCAL_PORT,远程端口:REMOTE_PORT
ssh -N -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -L LOCAL_PORT:localhost:REMOTE_PORT user@remote_host
:: 断开后等待 10 秒重新发起连接
timeout 10
goto loop

参数说明:

  • -L LOCAL_PORT:localhost:REMOTE_PORT:将本地端口转发到远程服务器的端口
  • user@remote_host:替换为你的 SSH 用户名和服务器地址
  • ServerAliveInterval=30:每 30 秒发送一次心跳包
  • ServerAliveCountMax=3:连续 3 次无响应则判定断线

第三阶段:配置开机隐蔽启动

说明:利用 VBS 脚本调用 .bat 文件,实现开机自启并隐藏运行时的黑色命令提示符窗口。

1. 进入 Windows 启动文件夹

按下键盘快捷键 Win + R 打开”运行”窗口。输入 shell:startup 并回车,系统将打开当前用户的”启动”文件夹。

2. 编写 VBS 引导脚本

在”启动”文件夹中新建一个文本文档,重命名为 start-tunnel.vbs(同样需注意清除 .txt 后缀)。

右键编辑该文件,粘贴以下代码并保存(若第二阶段的文件夹路径不同,请自行修改代码中的路径):

Set ws = CreateObject("Wscript.Shell")
' vbhide 参数实现后台隐蔽运行
ws.run "cmd /c C:\SSH_Tunnel\ssh-tunnel.bat", vbhide

完成!

至此配置全部结束。你可以直接双击 start-tunnel.vbs 文件立即运行测试。以后每次 Windows 开机,SSH 隧道都会在后台自动打通并保持连接。

常见问题排查

  • 无法自动重连:检查 ServerAlive 参数是否正确配置
  • 黑框仍然显示:确认 VBS 脚本中的路径是否正确,且使用了 vbhide 参数
  • 开机未自动启动:确认 VBS 文件已放入启动文件夹(shell:startup
  • 连接被拒绝:检查远程服务器 SSH 服务是否运行,端口是否正确
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇