toevi/WOLManager
GitHub: toevi/WOLManager
一款集成局域网唤醒、远程电源控制、RDP/SSH 连接、网络扫描和端口扫描等功能的 Windows 桌面网络管理工具。
Stars: 0 | Forks: 0
# WAL Manager
一款面向网络管理员的 Windows 桌面工具 —— 集成了局域网唤醒 (Wake-on-LAN)、远程电源控制、RDP、SSH、网络共享访问和端口扫描等功能。

## 功能
| 功能 | 描述 |
|---|---|
| **局域网唤醒 (Wake on LAN)** | 通过所有活动网络接口发送魔法数据包(支持多宿主 / Hyper-V) |
| **重启 / 关机** | 通过 `shutdown.exe` 执行远程电源命令,带确认对话框 |
| **RDP** | 一键启动远程桌面连接 |
| **SSH** | 使用 Windows Terminal 或 cmd 打开 `ssh [user@]host`;按计算机保存用户名 |
| **网络共享** | 在资源管理器中浏览 `\\hostname`;失败时弹出凭据对话框 |
| **信息 / 端口扫描** | ping 主机,通过 TTL 检测操作系统,并行扫描 20 个常用 TCP 端口 |
| **网络扫描器** | 自动发现局域网内的 Windows 计算机(ping + ARP + 主机名) |
| **系统托盘** | 最小化到托盘;当唤醒的计算机上线时显示气泡通知 |
| **备注** | 为每台计算机添加自由文本备注(角色、位置、所有者) |
| **状态轮询** | 每 10 秒刷新一次在线 / 离线状态 |
## 截图
### 信息 / 端口扫描
ping 目标主机,通过 TTL 猜测操作系统,并并行扫描 20 个常用 TCP 端口。

### 网络扫描器
自动发现局域网中的活动计算机 —— 点击 **扫描网络**,勾选你需要的计算机,然后批量添加它们。

## 系统要求
- Windows 10 / 11 (x64)
- [.NET 9 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet/9.0)
- OpenSSH Client *(可选,用于 SSH)* — 设置 → 应用 → 可选功能 → OpenSSH Client
## 安装
从 [发布页面](../../releases/latest) 下载 `WOLManager-Setup-1.1.exe` 并运行。
安装程序会将文件放置在 `Program Files` 中(需要管理员权限)。
配置信息存储在 `%APPDATA%\WOLManager\computers.json` —— 即使重新安装和更新也会保留。
## 从源码构建
```
git clone https://github.com/toevi/WOLManager.git
cd WOLManager
dotnet build -c Release
```
发布独立单文件 exe:
```
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o publish
```
## 使用说明
1. **添加计算机** — 点击 **添加**(手动)或 **添加扫描**(自动发现)
2. **唤醒计算机** — 双击该行,或者选中它并点击 **唤醒**
3. **远程访问** — 选中一台计算机,然后使用 **RDP / SSH / 网络共享**
4. **端口扫描** — 选中一台计算机,点击 **信息 / 端口扫描**
5. **编辑 SSH 用户名** — 点击 **编辑**,填写 *SSH 用户名* 字段 —— 下次将自动使用
### 局域网唤醒 (Wake on LAN) 提示
- 必须提供 MAC 地址 (`AA:BB:CC:DD:EE:FF`)
- 必须在 BIOS/UEFI 以及网络适配器电源管理设置中启用 WOL
- **禁用快速启动**:控制面板 → 电源选项 → 选择电源按钮的功能 → 启用快速启动:**关闭**
- 仅在同一局域网网段内有效;如需跨子网 WOL,请在路由器上配置直接广播 (directed broadcast)
### 远程重启 / 关机提示
- 目标机器上必须启用文件和打印机共享
- 目标机器上的防火墙规则 **远程关机** 必须处于活动状态
- 你需要对目标机器具有管理员权限
## 安全性
- 所有外部进程均通过 `ProcessStartInfo.ArgumentList` 启动 —— 没有使用 shell 字符串插值
- SSH 目标在连接到任何终端模拟器之前,会经过严格的正则表达式验证(即使 DNS 主机名被攻击者控制,也能阻止 shell 元字符)
- 端口扫描使用纯 .NET 的 `TcpClient.ConnectAsync` —— 没有 shell 调用,不读取数据,端口号为强类型 `int`
- 配置存储在 `%APPDATA%\WOLManager\` 中(不在 Program Files 中 —— 运行时无需高权限写入)
## 许可证
[MIT](LICENSE) — © 2025 tmfgroup
标签:Wake-on-LAN, WinForms, 数据统计, 端口扫描, 网络工具, 远程管理