diff --git a/防火墙.MD b/防火墙.MD index 4f865f1..1c29fca 100644 --- a/防火墙.MD +++ b/防火墙.MD @@ -237,4 +237,56 @@ table ip filter { } ``` -保存后再执行语法校验。 \ No newline at end of file +保存后再执行语法校验。 + +## 如果依然有问题:手动测试单条命令 + +``` +nft add element ip filter cn_ip {1.0.1.0/24} +``` + +这条命令不报错,说明 nftables 配置文件的`table ip filter`和`set cn_ip`已经正确加载。 + +> +> 确认 nftables 已经启动: + +``` +systemctl start nftables +nft list ruleset +``` + +## 额外注意 + +1. `nftables.conf`必须完整,table ip filter 以及 set cn_ip 必须存在,否则 add element 会找不到集合。 +2. 如果你服务器访问 apnic 很慢 / 超时,可以把 `delegated‑apnic‑latest` 下载本地,修改脚本读取本地文件。 +3. 不要残留旧 ipset,执行:`ipset destroy cn_ip` + +### 完整 nftables.conf 再次贴一遍对照 + +``` +#!/usr/sbin/nft -f +flush ruleset + +table ip filter { + set cn_ip { + type ipv4_addr + flags interval + auto-merge + } + + chain input { + type filter hook input priority 0; policy accept; + ip saddr @cn_ip tcp dport 40000-50000 drop + ip saddr @cn_ip udp dport 40000-50000 drop + } +} +``` + +修改配置后校验语法: + +``` +nft -f /etc/nftables.conf --check +systemctl restart nftables +``` + +执行完后,`nft list ruleset` 可以看到完整规则。 \ No newline at end of file