[英]How to route the splitted packets using netfilter hooks in kernel space
[英]WSL Kernel Netfilter hooks for Pre/Post Routing not available
我使用的是 Windows 11、WSL2、內核 5.10.60.1-microsoft-standard-WSL2。
我正在使用 RHEL 發行版,並且正在嘗試啟用 netfilter NAT 規則。 問題是,如果我嘗試向 NAT 表添加規則以進行 Pre 或 PostRouting,則會收到此錯誤:
[root@rhel8 nftables]# nft add chain nat prerouting { type nat hook prerouting priority 0 \; }
Error: No such file or directory
add chain nat prerouting { type nat hook prerouting priority 0 ; }
^^^
我的谷歌搜索使我相信我需要添加一些內核配置才能使其工作,但從我從 Microsoft 默認設置中可以看出,一切似乎都已打開。 如果有內核專家可以給我一個提示,我將不勝感激!
為了任何遇到此錯誤的人的繁榮:
我拉取了 microsoft WSL 內核( https://github.com/microsoft/WSL2-Linux-Kernel.git ),然后將 ./Microsoft/config-wsl 復制到 .config 以作為內核編譯的種子。
Ran make config
逐步完成答案,直到編譯的 netfilter 部分,然后對 netfilter 的整個部分(包括 NAT 等)回答是。
make -j $(nproc)
內核編譯后,我將 x86(不是 x86_64) ./arch/x86/boot/bzImage 復制到 Windows 文件系統( /mnt/c/users/me/xxxx
)上可訪問的內容。
然后備份,然后編輯你的c:\\users\\me\\.wslconfig
並將內核更新為新內核(記住你必須在內核路徑中使用\\\\
例如c:\\\\users\\\\me\\\\bzimage_custom
. 最后重啟 WSL 以啟動新內核:
wsl --shutdown
wsl -d mydistro
然后你將有可用的 NAT :)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.