Windows下使用bat实现端口映射进程守护
安装 plink.exe
前往官网 Download PuTTY 选择 Windows
版本的安装包,然后安装,安装完成后配置系统环境变量。
bat
实现端口映射进程守护
新建 PortGuard.bat
文件,输入下述内容。
@echo off
:: 配置SSH相关信息
:: 设置 SSH 的用户名和主机地址
set SSH_HOST=exampleUser@exampleHost
:: 设置 SSH 端口
set SSH_PORT=22
:: 设置本地端口,用于端口转发
set LOCAL_PORT=8080
:: 设置远程端口,用于端口转发
set REMOTE_PORT=80
:: 设置 SSH 密码,这里使用一个示例密码,实际使用时应该替换为正确的密码
set PASSWORD="YourSecurePassword123" :: 替换为实际密码:: 提示信息
echo Starting SSH port forwarding...
echo Host: %SSH_HOST%
echo SSH Port: %SSH_PORT%
echo Local Port: %LOCAL_PORT%
echo Remote Port: %REMOTE_PORT%:: 使用 plink.exe 进行连接,自动输入密码
:start:: 使用 plink.exe 进行连接,自动输入密码echo | D:\PuTTY\plink.exe -P %SSH_PORT% -L %LOCAL_PORT%:localhost:%REMOTE_PORT% -N %SSH_HOST% -pw %PASSWORD%:: 检查端口映射是否可访问curl -s --head http://127.0.0.1:%LOCAL_PORT% | find "200 OK" >nulif %errorlevel% neq 0 (echo Port %LOCAL_PORT% is not accessible. Reconnecting...taskkill /F /IM plink.exegoto start) else (echo Port %LOCAL_PORT% Running...)
:: 暂停以查看执行结果
pause
SSH_HOST
变量被设置为 exampleUser@exampleHost
,其中 exampleUser
是示例用户名,exampleHost
是示例主机地址。
- SSH_PORT 变量被设置为 22,这是 SSH 的默认端口。
- LOCAL_PORT 变量被设置为 8080,这是一个示例本地端口号。
- REMOTE_PORT 变量被设置为 80,这是一个示例远程端口号,常用于 HTTP 服务。
- PASSWORD 变量被设置为 YourSecurePassword123,这是一个示例密码,你应该在实际使用时替换为一个安全的密码。
该脚本运行后会出现一个 dos
窗口,若觉得碍眼可以用记事本将下面保存为扩展名为 .vbs
的文件。其中 PortGuard.bat
是上面批处理保存的文件名。
set ws=WScript.CreateObject("WScript.Shell")
ws.Run "PortGuard.bat",0
两个文件放在同一目录下双击 PortGuard.vbs
文件后,守护进程就在后台运行了,单这样得通过资源管理器结束 cmd
进程才能停止守护进程。