首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法让链“伪装”在WSL2内核上工作

无法让链“伪装”在WSL2内核上工作
EN

Ask Ubuntu用户
提问于 2022-08-01 16:40:30
回答 1查看 1.1K关注 0票数 2

我正在尝试为我的特定需求构建自定义内核,在这里我需要链式MASQUERADE才能可用。我正在使用https://github.com/microsoft/WSL2-Linux-Kernel构建我的内核。

我已经将MASQMASQUERADE所能找到的所有配置设置为y

无论我如何构建内核,每次运行iptables -t nat -C POSTROUTING -s 10.33.33.1 -j MASQUERADE --wait都会得到iptables v1.8.7 (nf_tables): Chain 'MASQUERADE' does not existiptables-legacy也是如此。

我不能使用insmodmodprobe加载任何自定义构建的内核模块。

有人让它起作用了还是知道怎么让它起作用?我尝试从kernel.org构建一个Linux,但事实证明,它在WSL中是不可用的。

EN

回答 1

Ask Ubuntu用户

发布于 2022-08-01 18:56:25

这里的核心问题是Ubuntu22.04现在默认为nf_tables而不是遗留的iptables。语法和默认规则是完全不同的。

虽然我鼓励您研究nf_tables的新语法(因为我们最终需要了解它),但您可以通过以下方法在短期内解决这个问题:

代码语言:javascript
复制
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy

请注意,您的规则所依赖的nf_tables中可能缺少其他规则,因此可能需要额外的配置。

更新注意:我刚刚注意到在当前发布的nftables内核中没有启用WSL2。它在昨天发布的新预览版本5.15.57.1 (可与0.65.3预览捆绑在一起)中提供。因此,目前,遗留iptables的退步可能是升级或编译自定义内核的唯一解决方案。

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1421466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档