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

25次阅读

共计 695 个字符,预计需要花费 2 分钟才能阅读完成。

在 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 
正文完
 0