NX1X/pfsense-geo-block
GitHub: NX1X/pfsense-geo-block
基于 pfBlockerNG 的 pfSense 地理封锁自动化方案,支持 250+ 国家 IPv4/IPv6 屏蔽,并通过每日 Slack 报告提供攻击来源和端口扫描可视化。
Stars: 0 | Forks: 0
# 使用 pfBlockerNG 实现基于国家/地区的 pfSense 地理封锁

[](https://github.com/NX1X/pfsense-geo-block/releases/latest)
[](GUIDE.md)
[](CHANGELOG.md)
[](https://blog.nx1xlab.dev/)
[](https://buymeacoffee.com/nx1x)
[](https://www.nx1xlab.dev/)
使用 pfBlockerNG 屏蔽所有国家/地区(IPv4 + IPv6),并通过每日 Slack 报告显示按接口分类的明细、国家/地区归属以及端口扫描检测。
## 功能
- 屏蔽来自 250 多个国家/地区的 175,000 多个 IPv4 段和 85,000 多个 IPv6 段
- 每日 Slack 报告:按接口/方向分类的明细、主要国家/地区、端口扫描器
- 通过 MaxMind GeoLite2 进行国家/地区查找(与 pfBlockerNG 捆绑)
- 智能上下文:针对出站 LAN 屏蔽显示目标国家/地区,针对入站 WAN 攻击显示源国家/地区
- 端口扫描检测:标记探测 4 个或更多不同端口的外部 IP
- 与 pfBlockerNG 威胁情报源(CINS、Emerging Threats、BlockListDE、ISC)协同工作
- 在更新成功或失败时发送 Slack 通知
## 脚本
| 脚本 | 用途 | 默认计划 |
|--------|---------|-----------------|
| `update-all-countries.sh` | 下载 IPv4 + IPv6 国家/地区 IP 列表并更新屏蔽列表 | 每天上午 7 点 |
| `geo-block-report.sh` | 解析防火墙日志并将每日屏蔽摘要发送至 Slack | 每天上午 8 点 |
## 快速入门
```
# 下载 scripts
mkdir -p /root/scripts
curl -o /root/scripts/update-all-countries.sh https://raw.githubusercontent.com/NX1X/pfsense-geo-block/main/update-all-countries.sh
curl -o /root/scripts/geo-block-report.sh https://raw.githubusercontent.com/NX1X/pfsense-geo-block/main/geo-block-report.sh
chmod 750 /root/scripts/*.sh
# 设置 Slack webhook(可选)
echo 'WEBHOOK="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"' > /usr/local/etc/geoblock-webhook.conf
chmod 600 /usr/local/etc/geoblock-webhook.conf
# 运行初始更新
sh /root/scripts/update-all-countries.sh
# 配置 pfBlockerNG — 参见 GUIDE.md
# 设置 cron jobs(在 pfSense UI 中:System > Cron)
# 7 AM → sh /root/scripts/update-all-countries.sh
# 8 AM → sh /root/scripts/geo-block-report.sh
```
## 文档
- **[设置指南](GUIDE.md)** — 完整的安装说明、pfBlockerNG IPv4/IPv6 规则、威胁情报源、cron 设置
- **[故障排除](TROUBLESHOOTING.md)** — 常见问题与修复
- **[更新日志](CHANGELOG.md)** — 版本历史
## 系统要求
- pfSense 2.7+(已在 2.8.1 版本上测试)
- 已安装 pfBlockerNG-devel
- 具备用于更新的互联网连接
- 防火墙最大表项数设置为 `600000`(系统 > 高级设置 > 防火墙与 NAT)
## 许可证
Apache 2.0 — 可免费使用和修改。详情请参见 [许可证](LICENSE)。
## 致谢
- [IPDeny.com](https://www.ipdeny.com/) 提供国家/地区 IP 数据
- pfBlockerNG 团队
- MaxMind 提供 GeoLite2 数据库
**最后更新:** 2026 年 3 月
标签:Cutter, DNS解析, Geo-blocking, IPv4, IPv6, IP 地址批量处理, IP黑名单, MaxMind, pfBlockerNG, pfSense, PowerShell, Slack通知, 入侵防御, 地理封锁, 威胁情报, 开发者工具, 开源项目, 插件系统, 端口扫描检测, 系统运维, 网络安全, 脚本, 防火墙, 隐私保护