nftables 伪装不起作用

nftables 伪装不起作用

我有一台笔记本电脑 (172.16.0.2) 和一台台式电脑 (172.16.0.1)。手机以 USB 调制解调器模式连接到电脑,并显示为 enp5s0f3u1 接口。我已经通过 nftables 设置了伪装,以便笔记本电脑可以通过本地网络通过台式电脑访问互联网。然而,几天前,它停止工作了,我不知道为什么。我已经检查了路由表,并且转发也已启用。问题似乎出在台式电脑上,因为出于某种原因,nftables 没有做任何事情(请求从笔记本电脑发送到电脑,但 IP 地址没有改变,例如,172.16.0.2 -> one.one.one.one)。

这是我的 nftables 规则集:

flush ruleset

define MODEM_INTERFACE = enp5s0f3u1
define HOME_INTERFACE = enp3s0
define HOME_PC = 172.16.0.1/32
define HOME_SERVER = 172.16.0.2/32 # laptop
define HOME_NETWORK = 172.16.0.0/12

table inet nat {
    chain postrouting {
        type nat hook postrouting priority 100;
        ip saddr $HOME_NETWORK iifname enp3s0 oifname $MODEM_INTERFACE masquerade
    }
}

当监听调制解调器接口时,tcpdump 输出为空白。

答案1

Docker 服务使用 iptables 而不是 nftables 创建规则,并且转发被阻止。

相关内容