更新 防火墙.MD
This commit is contained in:
@@ -119,17 +119,43 @@ nft list ruleset
|
|||||||
> nftables **不能直接用 ipset 命令**,ipset 是 iptables 的组件。需要脚本把 APNIC 网段导入 nftables set。
|
> nftables **不能直接用 ipset 命令**,ipset 是 iptables 的组件。需要脚本把 APNIC 网段导入 nftables set。
|
||||||
|
|
||||||
新建脚本 `/usr/local/bin/update-cn-set.sh`
|
新建脚本 `/usr/local/bin/update-cn-set.sh`
|
||||||
|
|
||||||
```
|
```
|
||||||
|
cat > /usr/local/bin/update-cn-set.sh <<'EOF'
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
TMP=$(mktemp)
|
TMP=$(mktemp)
|
||||||
curl -s https://ftp.apnic.net/stats/apnic/delegated-apnic-latest > $TMP
|
curl -s https://ftp.apnic.net/stats/apnic/delegated-apnic-latest > "$TMP"
|
||||||
|
|
||||||
|
# 清空集合
|
||||||
nft flush set ip filter cn_ip
|
nft flush set ip filter cn_ip
|
||||||
awk -F'|' '$2=="CN"&&$3=="ipv4"{len=32-log($5)/log(2);print "add @cn_ip " $4 "/" len}' $TMP | nft -f -
|
|
||||||
rm -f $TMP
|
# 生成 nftables 合法 add element 语法
|
||||||
|
awk -F'|' '$2=="CN"&&$3=="ipv4"{
|
||||||
|
len=32 - log($5)/log(2);
|
||||||
|
printf "add element ip filter cn_ip { %s/%d }\n", $4, len
|
||||||
|
}' "$TMP" | nft -f -
|
||||||
|
|
||||||
|
rm -f "$TMP"
|
||||||
|
EOF
|
||||||
|
chmod +x /usr/local/bin/update-cn-set.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
cat > /usr/local/bin/update-cn-set.sh <<'EOF'
|
||||||
|
#!/bin/bash
|
||||||
|
TMP=$(mktemp)
|
||||||
|
curl -s https://raw.githubusercontent.com/misakaio/chnroutes2/master/chnroutes.txt > "$TMP"
|
||||||
|
|
||||||
|
nft flush set ip filter cn_ip
|
||||||
|
|
||||||
|
while read -r net; do
|
||||||
|
[[ -z "$net" || "$net" =~ ^# ]] && continue
|
||||||
|
nft add element ip filter cn_ip { "$net" }
|
||||||
|
done < "$TMP"
|
||||||
|
|
||||||
|
rm -f "$TMP"
|
||||||
|
EOF
|
||||||
|
chmod +x /usr/local/bin/update-cn-set.sh
|
||||||
|
```
|
||||||
赋予执行权限:
|
赋予执行权限:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user