CNinOnlyBlocker 是一个专为服务器用户设计的防火墙增强工具,通过 ipset + iptables + ip6tables 实现仅允许中国大陆 IP 地址访问服务器入站服务,有效防止境外 IP 的恶意访问和攻击。
🚫 拒绝所有非中国 IP 入站连接|✅ 仅允许中国 IP 入站|🌐 支持 IPv4 + IPv6|🎯 支持端口范围放行|🔍 智能系统适配
- 仅允许中国 IP 入站:屏蔽所有非中国大陆 IP 的入站连接
- IPv4 + IPv6 双支持:完整支持 IPv4 和 IPv6 地址过滤
- 端口自定义放行:支持单端口、多端口和端口范围放行
- 智能适配:自动检测并适配多种 Linux 发行版(Debian/Ubuntu、CentOS、RHEL 等)
- 交互式界面:直观的菜单操作,无需记忆复杂命令
- 开机自启动:系统重启后自动恢复防火墙规则
- 不限制出站连接:服务器出站连接不受影响,保持正常访问外网
- 多重备用源:中国 IP 列表支持多个备用数据源,保证可靠性
- Linux 操作系统(支持 Debian/Ubuntu、CentOS、RHEL 等主流发行版)
- root 权限
- 以下软件包:
iptablesipsetwget
复制以下命令一键下载、安装并运行脚本:
curl -O https://raw.githubusercontent.com/Cd1s/CNinOnlyBlocker/refs/heads/main/allow-cn-inbound.sh && chmod +x allow-cn-inbound.sh && sudo ./allow-cn-inbound.sh腾讯云版本
curl -O https://raw.githubusercontent.com/Cd1s/CNinOnlyBlocker/refs/heads/main/allow-cn-inbound-tx.sh && chmod +x allow-cn-inbound-tx.sh && sudo ./allow-cn-inbound-tx.sh脚本提供以下功能:
- 安装 IPv4 仅中国入站:配置 IPv4 防火墙,仅允许中国 IP 入站
- 安装 IPv6 仅中国入站:配置 IPv6 防火墙,仅允许中国 IP 入站
- 查看放行端口:查看当前已放行的端口列表
- 添加放行端口:添加需要放行的端口(支持端口范围)
- 删除放行端口:删除已放行的端口
- 删除 IPv4 仅国内入站:移除 IPv4 过滤规则,恢复正常访问
- 删除 IPv6 仅国内入站:移除 IPv6 过滤规则,恢复正常访问
- 删除并卸载,放行全部端口:完全卸载 CNinOnlyBlocker,恢复系统默认设置
- 验证防火墙规则:查看当前防火墙规则和 IP 集合
- 检查服务状态:查看 CNinOnlyBlocker 服务状态
- 测试放行端口是否监听:检查放行端口是否正常监听
- 默认放行端口:22 (SSH)
- 防火墙规则存储路径:
/etc/cninonly_blocker/ - 开机自启服务:
cninonly_blocker.service
脚本自动从以下来源获取最新的中国 IP 列表:
- 主要来源:ipdeny.com
- 备用来源:APNIC 官方 IP 分配数据
- 请确保在安装前已开启 SSH 端口,否则可能导致自己无法访问服务器
- 建议在安装前将自己的 IP 地址或公司 IP 地址段放行(如果不是中国 IP)
- 在首次安装完成后应该立即测试连接是否正常
- 如果在安装过程中出现问题,可以通过【删除并卸载,放行全部端口】选项恢复系统默认设置
-
问题:安装后无法访问服务器 解决:通过 VPS 供应商的控制台/救援模式执行以下命令:
iptables -F iptables -P INPUT ACCEPT ipset destroy cn_ipv4 ipset destroy cn_ipv6
-
问题:开机后规则未自动加载 解决:检查服务状态并重新启用:
systemctl status cninonly_blocker.service systemctl enable cninonly_blocker.service systemctl start cninonly_blocker.service