Снова проблемы с nftables и nat

Добрый день. Стоит задача пробросить портов из внешней сети в локальную. Для принципиального решения задачи соединил два WB по ethernet.
WB_1 – Wiren Board 7.4.3, release wb-2310 (as stable) wb-fw-version = 202311221234
WB_2 – Wiren Board 7.3.2, release wb-2310 (as stable) wb-fw-version = 202311221234

По идее, настройка должна быть как в этой теме:

Но, почему-то не работает. Оба WB видят друг-друга по ssh.
WB_1 – 192.168.1.10
WB_2 – 192.168.1.11

Рулсет на WB_1:

nft list ruleset
table ip nat {
        chain prerouting {
                type nat hook prerouting priority dstnat; policy accept;
                tcp dport 330 dnat to 192.168.1.11:22
        }

        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                oifname "ppp0" masquerade
        }
}

При этом правило для ppp0 работает, WB_2 имеет доступ к интернету через WB_1, но попытка зайти на WB_2 по ssh через wlan0 WB_1 по 192.168.42.1:330 не проходит.

nft monitor trace показывает, что все ОК, видимо, проблема не на уровне nft

trace id fa7d2fdb ip traceall prerouting packet: iif "wlan0" ether saddr f0:d4:15:3e:e2:0c ether daddr 98:03:cf:46:a5:b0 ip saddr 192.168.42.183 ip daddr 192.168.42.1 ip dscp cs0 ip ecn not-ect ip ttl 128 ip id 62972 ip length 52 tcp sport 65158 tcp dport 220 tcp flags == syn tcp window 64240 
trace id fa7d2fdb ip traceall prerouting rule meta nftrace set 1 (verdict continue)
trace id fa7d2fdb ip traceall prerouting verdict continue 
trace id fa7d2fdb ip traceall prerouting policy accept

Форвардинг для wlan0 включен

net.ipv4.conf.wlan0.forwarding = 1
net.ipv4.conf.wlan0.mc_forwarding = 0
net.ipv4.conf.wlan1.bc_forwarding = 0
net.ipv4.conf.wlan1.forwarding = 1
net.ipv4.conf.wlan1.mc_forwarding = 0

Поддержу ната в ядре включал вот так:
modprobe nf_nat

Добрый день.
А покажите всю (действующую) цепочку правил пожалуйста.

Вы имеете ввиду route -n?

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     55     0        0 ppp0
10.64.64.64     0.0.0.0         255.255.255.255 UH    55     0        0 ppp0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth1
192.168.42.0    0.0.0.0         255.255.255.0   U     600    0        0 wlan0
ip route
default dev ppp0 proto static scope link metric 55
10.64.64.64 dev ppp0 proto kernel scope link src 10.241.22.105 metric 55
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.10 metric 100
192.168.42.0/24 dev wlan0 proto kernel scope link src 192.168.42.1 metric 60

После добавления таблиц Input и output доступ по ssh заработал:

table ip filter {
        chain input {
                type filter hook input priority filter; policy accept;
        }

        chain output {
                type filter hook output priority filter; policy accept;
        }
}

Но вот странно, если меняю порт назначения с 22 (ssh) на 80, чтобы зайти на веб-морду WB_2, то при этом попадаю все равно на WB_1

Так 80 порт слушается же на первом контроллере. Или перенаправление так и остается с 300?
А что в интерфейсе прописано в качестве порта и адреса MQTT?

Да, ожидаю, что, подключившись к WB_1 по Wi-Fi получу по 192.168.42.1:330 доступ к веб-морде WB_2. Настройки MQTT Не трогал, все по умолчанию, затрудняюсь посмотреть какой там порт должен быть.

Нашел, MQTT на 1883 по нему пускает, но только через VPN. Т.е. если на WB_1 поднять VPN и ввести <ip_vpn_WB_1>:330, то попаду на WB_2, будут видны его топики. При этом, через Wi-Fi по ip 192.168.42.1:330 не работает. Здесь что-то в интерфейсе wlan0 видимо.

Поправка, MQTT работает и по wlan и по vpn, веб-морда работает только по vpn, но не работает по wlan. Очень странно.

Проверьте пожалуйста что именно выбрано в настройках веб-интерфейса Настройки - Веб-интерфейс.