Vibe Coding做了一个 Windows 防火墙管理器,终于不用再点控制面板了

111 阅读3分钟

#VibeLaunch 沸点秀#

为什么做这个

起因很简单:我需要在家里的Windows运行一些服务,需要做内网穿透,为了安全考虑得控制端口。

然后我就打开了那个熟悉的界面——控制面板 → Windows Defender 防火墙 → 高级设置。

怎么说呢,这个 UI 大概是上个世纪的设计遗产:

  • 规则列表是一个没有搜索、没有筛选的长列表,几百条规则里找一条全靠肉眼
  • 新建规则要连点五六个"下一步"的向导,开一个端口像在走流程审批
  • 想改个规则?右键 → 属性 → 弹出一个老式对话框 → 改完点确定
  • 想临时禁用一条规则试试?又是右键 → 属性 → 找到复选框……

我不是不会用,我是用烦了。

于是周末花了点时间,vibe coding 了一个小工具。

做出来长这样

主界面 — 规则总览

screenshot.png 所有入站/出站规则一目了然。表格展示,该有的信息都有:名称、方向、动作、协议、本地端口、远程端口、程序路径、状态。

再也不用在那个老式列表里来回滚动了。

智能搜索 & 筛选

顶部有搜索框,可以按名称、端口、地址快速搜索。还有协议、动作、状态的下拉筛选器。

比如想找所有开放 80 端口的规则?输入 80,秒出结果。

添加 / 编辑规则

不用再走那个五步向导了。一个表单页面,填完点保存,搞定。

明暗主题

支持深色和浅色主题切换。深色模式下长时间盯着看也不会太累。

程序路径显示

如果规则限定了某个程序(比如只允许 Chrome 联网),会直接显示程序文件名。鼠标悬停能看到完整路径,点击一下就能打开文件所在的目录,找程序不用再满硬盘翻了。

常用端口管理

新增了一个「常用端口」页面,一眼就能看到 Windows 常用服务的状态:

  • RDP 远程桌面跑在哪个端口?是默认的 3389 还是改过的?
  • SMB 文件共享服务有没有在运行?
  • WinRM 远程管理是否可用?

每个服务都会显示实际监听的端口,如果和默认端口不一样会特别标出来。

端口修改

嫌 RDP 默认端口不安全?想改就改。在常用端口页面点编辑按钮,输入新端口,服务会自动重启生效。目前支持 RDP、WinRM、SMB 三个服务的端口修改。

列宽拖拽(性能优化)

表格列宽可以拖拽调整,端口地址太长看不全?拉宽一点就好。而且做了性能优化——拖拽的时候不卡了。原理是拖拽开始时缓存 DOM 引用,拖拽过程中直接操作缓存,避免每帧重复查询。

搜索优化

搜索也做了优化。第一次搜索时会缓存全部规则,之后再搜索就直接从缓存里过滤,不用每次都重新请求,响应速度快了很多。

中文适配

用中文 Windows 的同学应该遇到过 netsh 输出乱码的问题。这个工具做了 GBK 编码适配,中文规则名不会变成火星文。

技术方案

没什么复杂的,就是 Wails v2 + Go + Vue 3:

  • Go 后端调 netsh advfirewall 操作防火墙,加了 verbose 参数获取程序路径
  • 常用端口管理用 tasklist + netstat 检测服务状态和实际监听端口
  • Vue 3 + Naive UI 做界面
  • Wails 打包成单个 exe,十几 MB,拷贝即用

选 Wails 没选 Electron,纯粹是因为一个防火墙管理工具打包 200MB 太离谱了。

下载

GitHub 开源,MIT 协议:

👉 github.com/whyy1/firew…

Releases 页面下载最新版,解压双击就能用。

启动时会请求管理员权限,防火墙操作需要提权,正常现象。


总的来说就是 vibe coding 的产物,解决自己的一个小痛点。如果你也受够了控制面板那个界面,可以试试。