路由器版本:openwrt 22.03
nftables 版本:v1.0.2 (Lester Gooch)
现在想法: 指定局域网内某个特定 IP 不允许访问百度, 但使用下面的 nftable 配置后, 该 IP 依旧能够访问
#!/usr/sbin/nft -f
flush ruleset
table inet mytable {
chain filter{
type filter hook output priority 0; policy accept;
ip saddr {192.168.0.10/32} ip daddr {180.97.34.94,180.97.34.96} drop
}
}
但是如果我把 ip saddr 这个特定 IP 去掉之后,所有局域网都无法访问 baidu 了,感觉 nftable 不能针对某个特定 IP 做控制
#!/usr/sbin/nft -f
flush ruleset
table inet mytable {
chain filter{
type filter hook output priority 0; policy accept;
ip daddr {180.97.34.94,180.97.34.96} drop
}
}
1
old9 2023-01-01 12:10:03 +08:00
hook forward chain?
|
2
rshun OP forward 和 input 都试过了,都不生效
|
3
lekai63 2023-01-01 12:25:57 +08:00 via iPhone
你那个特定 ip 是否通过代理访问了百度
|
4
rshun OP 本机没有使用代理,在路由器上我把相关代理配置全部删除了,只保留上述的 nft 配置。
|
5
ysc3839 2023-01-01 13:10:39 +08:00 via Android
既然是 OpenWrt ,又没用到 ipset 之类的功能,为什么不用 OpenWrt 自带的防火墙呢?
|
6
vmebeh 2023-01-01 13:18:48 +08:00 via iPhone
自带防火墙切到 nft 了
|
7
old9 2023-01-01 16:34:55 +08:00
```
chain FORWARD { type filter hook forward priority 0; policy accept; ip saddr {192.168.0.10/32} ip daddr {180.97.34.94,180.97.34.96} drop } ``` |
8
lovelylain 2023-01-01 20:14:48 +08:00 via Android
换 lean 的 lede ,继续用 iptables
|
9
tony1016 2023-01-01 23:12:40 +08:00
你的 openwrt 是不是有 clash tun 啊,被压到 tun 里去了
|
10
rshun OP 我大概知道是怎么回事了,hook output 是针对本机的,也就是路由器自身的 IP ,所以 ip saddr 指定是不生效的。
只能放到 forward 里面,但是这个 forward 是在 nat 的 prerouting 后面生效,所以如果走域名方式依然不生效,如果在浏览器中输入 IP 地址就生效了 |