本说明覆盖 Linux 主机(SSH 直连)与 Windows 主机(通过 BandwidthAgent)两套防火墙工具,按「每个版块的功能 / 操作方法 / 注意事项」逐块说明。窗口统一是「一个窗 + 多个页签」,每个页签互相独立,窗口也不锁主程序 —— 主窗口和这些窗口可以各自最小化、互不干扰。
一、两条路线,怎么选
- Linux 主机(类型 = SSH):走 SSH 直连,不需要在被控端装任何东西。右键主机 → 「🛡 防火墙(Linux)…」。
- Windows 主机(类型 = RDP):需要在被控端装 BandwidthAgent(Windows 服务),然后在主机里填 Agent 端口 + Token。右键主机 → 「🛡 防火墙(Windows Agent)…」。
- 入口统一在主机列表右键菜单;Linux 的防火墙窗里同时包含「端口规则 / 登录日志 / 防爆破」三个页签。
二、准备工作
2.1 添加 / 编辑主机
Windows 主机要额外填两项:Agent 端口 和 Token(装了 agent 才有);Linux 主机填 SSH 的端口和账号即可。

- 名称 / 主机 / 端口 / 类型:类型决定走哪条路线(RDP → Windows agent;SSH → Linux 直连)。
- 用户名 / 密码:SSH 或 RDP 的登录凭据;密码留空表示沿用已保存的。
- Agent端口:BandwidthAgent 的监听端口(如 8080)。填 0 = 禁用这条线路。
- Token:安装 agent 时打印/复制的那串;只在「防火墙控制(Agent)」等安全功能里用。
- 测试连接 / 保存:先测试再保存,省得配错排查半天。
2.2 Windows 端安装 BandwidthAgent
把 agent 包解压到被控机,右键 service-manager.bat → 以管理员身份运行(它会自动请求提权),然后选 1 安装。

- 1 安装并启动服务(自动放行端口):装服务 + 自动在防火墙放行 agent 自己那个端口。
- 2 卸载服务(删服务 + 清防火墙) / 3 查看状态 / 4 启动服务 / 5 停止服务。
- 6 显示 token(客户端要用):忘了 token 就选它。
- 7 查看防火墙规则(本机) / 8 查看已封 IP / 9 开关自动封禁(本机):本机自测,不依赖客户端。
- 0 退出。
powershell.exe,表现为:防火墙规则拉不下来 / 连 agent 提示「无响应」/ 登录日志与自动封禁不工作。publish\BandwidthAgent.exe 后必须 sc stop BandwidthAgent & sc start BandwidthAgent;只换文件不重启服务 = 跑的还是旧版。三、Windows 防火墙(Agent)
窗口标题形如「防火墙控制(Agent) — 主机名」。顶部是地址 / 端口 / token 概要(端口和 token 在「主机编辑」页填,这里只看不改),以及「重新连接」「刷新」。
3.1 顶部与页签
- 重新连接:断线时手动重连(打开窗口会自动连一次)。
- 刷新:按当前页签刷新内容 —— 端口规则/封禁 IP = 全量刷新;登录日志 = 重拉日志;攻击来源 = 重读防火墙日志。
- 一键开启防火墙 / 停用:开关 Windows 防火墙(域/专用/公用一起);开关前会二次确认。
- 防火墙: 域✓ 专✓ 公✓:三个配置档的当前状态,哪个关着就显示 ✗。
- 页签:端口规则 / 封禁 IP / 登录日志 / 攻击来源。
3.2 端口规则
列出本机入站、允许的端口规则(含已禁用的),用于看清"哪些口开着、哪些该关"。

- 配色图例(窗口右上):🟩 启用(生效中) / 🟨 建议禁用(网络发现、文件共享这类) / ⬜ 已禁用(规则还在但不生效) / 🟦 本工具建的规则。
- 停用选中 / 启用选中:批量开关选中的规则(只改"启用状态",不删规则)。
- 🧹 停用无用端口:把黄色(网络发现/共享类)的规则一次性停用;随时可再启用回来。
- 放行端口:在底部「放行端口」填端口(可填
80、80,443、39000-40000)、选 TCP/UDP,点「+ 放行」。 - 右键/选中可删:只能删本工具创建的规则(
RdpManager-*/RdpBlock-*);系统自带规则删不掉(这是安全阀)。
3.3 封禁 IP
管理 Windows 防火墙里的封禁规则:每条封禁 = 一条 入站阻止规则,名字是 RdpBlock-<IP>。

- 封 IP:在「封 IP」框里填单个 IP,点「封禁」;也可在「攻击来源/登录日志」页右键 → 封禁。
- 解封选中:选中一条点它即删掉对应防火墙规则(解封会回读确认,删不掉会明确报错)。
- 归属地:客户端自动查询并缓存(只显示,不联网也能看已缓存的)。
3.4 登录日志
拉取 Windows 安全日志里的远程登录记录:4625(失败) 与 4624(成功,只取远程桌面),按来源 IP 汇总。

- 右键 → 封禁 / 解封 / 复制 IP / 加入白名单。
- 状态栏会显示条数:
失败 N 条 / 成功 M 条(近 24h)。 - 「机器名/无IP」是什么:NTLM 网络登录(LogonType=3)Windows 只记来源机器名、不记 IP,所以这类失败没有 IP 可封 —— 要 IP 就看「攻击来源」页(防火墙日志里有)。
3.5 攻击来源
读 Windows 防火墙日志 pfirewall.log,把打本机端口的外网来源 IP 按次数汇总 —— 这是拿"爆破源 IP"最靠谱的地方。

- 只看拦截(默认勾选):只统计被防火墙 DROP 的;取消勾选连放行的连接也列出来。
- 读取来源:重新读取并汇总;「端口」框留空 = 全部端口,填
3389就只看打 RDP 的。 - ⚙ 启用日志记录:打开防火墙日志(
netsh advfirewall set allprofiles logging ...);必须先开防火墙,日志才有内容。 - 🔍 自动封诊断:一次性告诉你自动封禁现在看到了什么(开关/阈值/窗口/RDP 端口/白名单、4625 计数、防火墙日志连接数、当前封禁记录、规则实况、环境)。排障先点它。
3.6 底部操作区(放行 / 改端口 / 限 IP / 自动封禁)
| 版块 | 功能 | 操作方法 | 注意 |
|---|---|---|---|
| 放行端口 | 开放一个入站端口 | 填端口(单口/逗号多口/区间)+ 选 TCP/UDP → 「+ 放行」 | 规则名以 RdpManager-Port- 开头,便于识别与删除 |
| 远程桌面端口 | 把 RDP 监听的端口改掉 | 填新端口 → 「改端口」 | 先改新端口、验证能连之后再删旧规则;改端口会重启 TermService,当前 RDP 会话会断;云安全组/Hyper-V ACL 那层也要放行新端口 |
| 限指定 IP | 只允许某个 IP 访问远程桌面 | 填 IP(可逗号多个 / 可写 1.2.3.0/24)→ 「应用」;要恢复点「解除」 | 会把其它允许该端口的规则停用(不是删);填错不要紧,点「解除」能恢复 |
| 自动封禁(登录失败) | 登录失败达到阈值自动封 IP | 勾选「自动封禁」→ 设阈值/窗口(分)/封禁(分)→ 「💾 保存」 | 未保存 = 没生效;封禁到期自动解封 |
| 连接速率也封 | 不看登录,只看连接频率(读防火墙日志) | 默认勾选,与上面共用阈值/窗口/白名单 | RDP 爆破常常 4625 里没有 IP,靠这条兜底 |
| 永封(白名单) | 这些 IP 永不自动封 | 填 IP(逗号分隔,支持 1.2.3. / 1.2.3.0/24)→ 保存 | 一定要把你自己的出口 IP 加进去,否则打错密码够了次数会把自己封了 |
四、Linux 防火墙
通过 SSH 直连操作被控机的防火墙(自动识别 firewalld / ufw / nftables)。窗口也是「一个窗 + 三个页签」:端口规则 / 登录日志 / 防爆破。
4.1 端口规则

- 顶部状态行:当前用的防火墙组件、是否在运行、当前 SSH 端口、共多少条规则。
- 刷新:重新读取规则。
- 放行 SSH 端口:开防火墙前的安全阀 —— 先确保当前 SSH 端口被放行,避免把自己关在门外。
- + 添加规则 / 删除选中:加/删端口规则。
- 启用防火墙 / 停用防火墙:起停 firewalld/ufw(启用前会自动先放行 SSH 和在听端口)。
- 改 SSH 端口:三步式(检查 → 应用(保留旧端口)→ 验证后再移除旧端口);改前备份
sshd_config,sshd -t不过自动回滚。 - 变更记录 / 原始输出:查看改动留痕(
~/.rdp-manager/fw-changelog.log)和防火墙原始输出。
4.2 登录日志
读被控机的 /var/log/secure、auth.log 或 journalctl(取最近 5000 行),按 IP 汇总成功/失败登录。

- 读取日志:拉取并解析。
- 按 IP 汇总 / 逐条明细:两种视图切换(汇总看"谁在打",明细看"每一次")。
- 导出 CSV:留档或给别人看。
- 右键 → 封禁 / 解封:已封的 IP 会标「已封」。
- 归属地:自动查询并缓存(
~/.rdp-manager/ipgeo2.cache),只查出现最多的前 60 个,避免卡顿。
4.3 防爆破
下发一个轻量脚本到目标机(默认走 cron 每分钟一次),按登录失败频率自动封 IP。命令会直接打到 SSH 终端里执行,输出自己在终端看。

- 失败阈值 / 窗口(分钟) / 封禁(分钟):同一 IP 在窗口内失败 ≥ 阈值 → 封禁,到期自动解封。
- 白名单:空格分隔;你自己的 IP 一定要放进去(窗口打开时会自动预填当前连接 IP)。
- 目标机没装 ipset 时自动安装(装失败回退 iptables):有 ipset 用 ipset(O(1) 查表),没有就退到 iptables。
- 常驻守护(可选):勾 = 装 systemd 常驻(每 5 秒、开机自启、崩溃自愈);不勾 = 每分钟 cron 一次(更轻量,默认)。
- 预检:只检查不部署(看环境支持情况);查看脚本:看将要下发的脚本内容;
- 部署:真正下发(改完参数要重新点部署才覆盖);卸载:删脚本 + cron/服务 + 封禁链;
- 状态:看"已部署/未部署、脚本版本、运行方式、上次运行、已封 IP 数、近期异常、最近日志"。
五、通用注意事项(两套都适用)
- 先开防火墙,规则才有意义。Windows 点「一键开启防火墙」;Linux 点「启用防火墙」(会先放行 SSH)。
- Windows 10/2016+ 必须给 BandwidthAgent 目录加杀软白名单,否则 PowerShell 被拦 → 规则/日志拉不到、连接"无响应"。
- 改 agent 后要重启服务(
sc stop BandwidthAgent&sc start BandwidthAgent)。 - 封禁/解封只影响新连接;已建立的会话不会立刻断。
- 端口和 token 必须与 agent 端一致,不一致就是"无响应"。
- 改 SSH 端口 / RDP 端口这类操作,云安全组、Hyper-V ACL 那层也要同步放行,否则外网连不上(本机防火墙已放行也没用)。
- 白名单是你的保险:自动封禁前把常用出口 IP 加进白名单,避免把自己关在门外。
- 排障顺序:Windows 先点「🔍 自动封诊断」;Linux 先点「状态」;再看终端/日志输出。
六、常见问题(FAQ)
| 现象 | 原因 | 处理 |
|---|---|---|
| 防火墙窗连不上、提示「无响应」 | 端口/token 不对,或那个端口被别的程序占用(如 8080);也可能是 agent 没跑 | 核对 agent 的监听端口与 token;换一个不常用的端口重装 agent;确认服务是 RUNNING |
| 登录日志能读,但端口规则拉不下来 | agent 调 PowerShell 被安全软件拦/太慢 | 给 BandwidthAgent 目录和 powershell.exe 加白名单;升级到最新 agent(带超时与 netsh 兜底) |
| 列表页「流量」列一直是 0 | 主程序旧版读取带宽 JSON 被截断 | 升级主程序(新版本改成读完整数据) |
| 自动封禁不生效 | 没保存/没勾选;或白名单里有它;或规则创建失败 | 点「🔍 自动封诊断」看:是否已开、阈值与计数、白名单、是否有"记录有规则无"的 IP |
| 解封了但防火墙里规则还在 | 旧版本解封"假成功" | 升级 agent(新版解封会回读确认,删不掉会报错) |
| 封了 IP 却还能连 | 防火墙没开;或只是已建立的连接 | 先确认防火墙开启;断开重连再试 |
--status 看状态、--diag 看环境、--selftest 逐条自测、--bw 看带宽数据。