Iptables

nftables dnat 轉發無法正常工作

  • February 14, 2021

再會,

我目前正在從 iptables 遷移到 nftables。問題是我的 systemd 容器在 NAT 後面執行,但我想將 443 或 80 等埠轉發給它們。使用以下命令集時沒有錯誤消息,但使用 nftables 時也無法訪問我的 Web 伺服器。

提前謝謝了。

最好的問候, 菲利克斯

編輯:有用的評論解決了這個問題。謝謝!

感謝 Roman Ivanov 的有用nft monitor

NAT 不起作用,因為我在過濾器轉發結束時使用此規則:

iifname wan0 reject

在鏈 NAT 中,您需要規則:

NAT => 預路由

nft add rule nat prerouting iifname wan0 tcp dport { 80, 443 } dnat 192.168.0.10  

在鏈過濾器中,您需要規則:

過濾器 => 轉發

nft add rule filter forward iifname wan0 oifname lan0 ip daddr 192.168.0.10 tcp dport { 80, 443 } accept

以下是您可以採取的一些步驟:

  1. 鍵入 nat hook 預路由優先級 0;<-根據 NF_IP_PRI_NAT_DST 網路過濾器常數,應為 -100(減去一百)
  2. 在預路由中使用“meta nftrace set 1”和“nft monitor”來調試數據包流
  3. 隔離問題並舉例說明的最簡單規則集

我也沒有工作 dnat。從一個 iface 都可以,但從另一個不行。

數據包進入預路由,接受 dna 但這之後沒有任何反應。“Conntrac -E”看不到這些包。

引用自:https://serverfault.com/questions/895611