Clash 报错 invalid mode: redir-host [Could not switch to this profile]

[members_only]

之前在用 灯塔Cloud 配置 Clash 负载均衡的时候出现了这个错误提示:[Could not switch to this profile] nvalid mode: redir-host

如下图这样:

错图弹窗

产生错误的原因

这个提示很明显,就是订阅配置中的 enhanced-mode 设置成了 redir-host 模式。这个东西是可以自行修改成 fake-ip 模式的。但是问题是:每次更新订阅之后,这个设置又会被重置,导致反复报错。

如果你想查看自己的订阅配置是什么,只需要进入 Clash – 左侧配置 – 右击机场订阅 – 编辑:

enhanced-mode 已经修改过了

小提示:最新版的 Clash 内核已经不再支持 redir-host 模式。只能选择使用 fake-ip

报错解决方法

订阅的默认设置是跟随机场主来的,所以要么你能让机场主更新默认设置;要么就只能按照下面的这个方法修复该问题。

这个时候就需要和之前设置负载均衡一样,设置一个额外的预处理脚本 :

parsers:
  - url: "你的订阅地址(注意地址后缀,按照负载均衡教程后缀应该有#slbable)"
    yaml:
      commands:
      - dns.enhanced-mode=fake-ip

这个脚本的意思就是,每次在更新订阅,加载默认配置时,将 enhanced-mode 自动切换成 fake-ip 模式。

如果你是看了我的负载均衡教程来的,那么整个的负载均衡+切换 enhaced-mode 预处理脚本代码应该如下:

parsers:
  - reg: 'slbable$'
    yaml:
      append-proxy-groups:
        - name: ⚖️ 负载均衡-散列
          type: load-balance
          url: 'http://www.google.com/generate_204'
          interval: 300
          strategy: consistent-hashing
        - name: ⚖️ 负载均衡-轮询
          type: load-balance
          url: 'http://www.google.com/generate_204'
          interval: 300
          strategy: round-robin
      commands:
        - proxy-groups.⚖️ 负载均衡-散列.proxies=[]proxyNames
        - proxy-groups.0.proxies.0+⚖️ 负载均衡-散列
        - proxy-groups.⚖️ 负载均衡-轮询.proxies=[]proxyNames
        - proxy-groups.0.proxies.0+⚖️ 负载均衡-轮询

  - url: "你的订阅地址(注意地址后缀,按照负载均衡教程后缀应该有#slbable)"
    yaml:
      commands:
      - dns.enhanced-mode=fake-ip

注意:做负载均衡之后,订阅地址会有一个 #slbable 的后缀。所以在 URL 中填写订阅地址时,别忘了把这个后缀加上。例如的你的订阅地址是 xxx.com/xxx,那么这里的地址就应该是 xxx.com/xxx#slbable

如此,报错问题 [Could not switch to this profile] nvalid mode: redir-host 完美解决~

Github 问题帖子地址https://github.com/Fndroid/clash_for_windows_pkg/issues/4065

[/members_only]