routeros 的 container 不支持 iptables,如何将运行 Clash 的容器配置成透明网关呢

182 天前
 xiaofami

在 Routeros 提供的 container 中运行了 metacubex/mihomo:v1.18.5 ,测试通过 7893 端口代理正常。参照Real-IP Tun Example想进一步进行透明网关设置时,发现 Routeros 的 container 不支持 iptables 功能:

/ # iptables -V
iptables v1.8.10 (nf_tables)
/ # iptables -L
iptables v1.8.10 (nf_tables): Could not fetch rule set generation id: Invalid argument
/ # 

这样一来要如何将流量转发给 utun 网卡呢?

Clash 配置文件节选

dns:
  enable: true
  ipv6: false
  enhanced-mode: redir-host
  listen: 0.0.0.0:7874
  nameserver:
  - 172.17.0.2:53
  default-nameserver:
  - 172.17.0.2:53
tun:
  enable: true
  stack: system
  device: utun
  auto-route: false
  auto-detect-interface: false

container 信息

/ # uname -a
Linux clash.lan 5.6.3-64 #1 SMP Wed Apr 17 13:00:29 UTC 2024 x86_64 Linux
/ # ip r
default via 172.17.0.1 dev eth0 
172.17.0.0/24 dev eth0 scope link  src 172.17.0.3 
198.18.0.0/30 dev utun scope link  src 198.18.0.1 
1502 次点击
所在节点    宽带症候群
9 条回复
povsister
182 天前
ros 系统本身就不是标准的 Linux ,不要指望上面的容器能和 linux 一样。
透明代理你要么 fakeip 用旁路由解决,要么设备网关填旁路由,要么就和我一样 realip+DNSRoute
xiaofami
182 天前
@povsister 感谢指点,看来 ros 系统的 container 功能还比较局限~
mohumohu
182 天前
mmr
182 天前
hhh ,我也在折腾你这个问题…………,事实上我不想 fake-ip……,我在想如何实现。

如果你愿意折腾的话,有一些其他方法可以参考,请看 https://www.kskb.eu.org/2021/10/rootlessrouterfin-uml.html 一个很折腾的,可能有性能问题的方案,我还没开始折腾
mmr
182 天前
@xiaofami 其实我倒感觉是 ROS 为了安全没开这些权限,容器的权限确实是比较死的。
f0rger
182 天前
同想知道,一直折腾一直不成功。我也不想 fakeip
xiaofami
182 天前
@mmr 看起来很厉害的样子,不过有些复杂 … 希望 ROS 未来给容器开放更多权限吧
bigfei
182 天前
singbox 可以。
povsister
182 天前
@mmr
不用 fakeip 可以考虑我发布的方案,查看我发帖列表即可

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1042764

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX