返回更新列表
新发布Sep 4, 2026

easywall v2.14.0

Linux 上 nftables 防火墙的 Web 界面,使用 Go 编写。除非您确认,否则应用更改会在 120 秒后自动撤销——您不会将自己锁在外面。支持 Debian 与 Docker 安装。

分享

easywall

你的防火墙。你的规则。没有意外。

Tests Build Security Coverage

Latest release Go version GPL-3.0 Discord Support on Ko-fi

在线演示 · 文档 · 更新日志

通过一个不会将你锁在门外的 Web 界面管理 nftables:每次应用都会自动回滚,除非你确认它。

easywall 仪表盘:防火墙状态(含接受状态、待处理更改和上次应用时间);统计 TCP 端口、UDP 端口、黑名单、白名单、自定义规则和转发的卡片;以及最近活动列表。

核心理念

编辑规则不会改变任何东西。应用规则才会改变一切——持续 120 秒。 如果新规则切断了你的连接,你将无法点击“确认”,而确认正是让旧规则恢复的方式。

状态机:编辑进入 Staged(暂存),应用进入 Live(生效),在窗口期内确认进入 Confirmed(已确认),窗口期过期则进入 Rolled back(已回滚),暂存的编辑仍然可用。

架构

两个进程。暴露在网络上的那个进程不持有任何值得窃取的权限。

浏览器通过 HTTPS 与 easywall-web 通信,后者以非特权身份运行;easywall-web 通过 Unix socket 以类型化 JSON 与 easywall-core 通信,后者以 root 身份运行并通过 netlink 与 nftables 表 inet easywall 交互。

这是对原始 easywall 的完全重写——原版基于 Python、Flask,通过子进程调用 iptables——该版本在 2022 年因一个 CVE 被归档。两个根本原因都已消除:特权位于不同的进程中,应用路径构建 Go 结构体而非命令行。工作原理 →

安装

决策树:仅想了解则进入演示模式;Debian 或 Ubuntu 则使用 .deb 包;已在运行容器则使用 Docker;否则从源码构建。
# Debian / Ubuntu — amd64 和 arm64
ARCH=$(dpkg --print-architecture)
wget https://github.com/jp1337/easywall/releases/latest/download/easywall_$ARCH.deb
sudo dpkg -i easywall_$ARCH.deb && sudo apt-get install -f

# Docker
git clone https://github.com/jp1337/easywall.git && cd easywall && docker compose up -d

# 从源码构建 — Go 1.27+、nftables
git clone https://github.com/jp1337/easywall.git && cd easywall
make build && sudo make install
sudo systemctl enable --now easywall-core easywall-web

然后打开 https://localhost:12227。首次访问会 设置账户并暂存首批规则

功能一览

端口TCP 和 UDP,支持单个或范围,带按规则的 SSH 暴力破解路由
黑名单与白名单IPv4、IPv6 和 CIDR,在任何端口规则之前评估
防护模块十二个,默认启用五个——洪水、扫描、bogon、分片、广播/组播/任播
端口转发带协议选择的 NAT 重定向
自定义规则原始 nftables,应用前进行语法检查
导出 / 导入整个规则集以 JSON 形式导出
审计日志记录何时更改了什么,每行一个 JSON 对象
Docker 共存仅拥有 table inet easywall,不触碰其他任何内容
英语、德语、法语可在界面中切换,包括登录前。语言可能不完整:缺失部分以英语显示,且缺口会被报告而非隐藏
浅色与深色跟随操作系统,带手动切换;两者均通过对比度检查

技术栈

Go 1.27,单一二进制go-chi/chi · html/template
通过 google/nftables 管理 nftables直接 netlink,无 nft 子进程
Argon2idgolang.org/x/crypto,每个密码 16 字节盐
CSRFnet/http.CrossOriginProtection,Go 1.25 原生
设计系统DESIGN.md + Tailwind v4——无第三方 UI 库
字体Inter + JetBrains Mono,自托管,约 145 KB——支持离线环境
CIgovulncheckgosec、CodeQL、-race,以及针对真实内核的集成测试套件

获取帮助

有疑问,或行为异常Discord
发现 Bug,或想要的功能GitHub issues
安全漏洞安全公告 —— 不要通过 Discord,也不要提交公开 issue

参与贡献

环境搭建、提交规范和审查清单:CONTRIBUTING.md。 任何视觉相关的内容都需先经过 DESIGN.md

安全问题:不要作为公开 issue 提交——请使用 GitHub Security Advisories

许可证

GPL-3.0——参见 LICENSE

分类