V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
morytyann
V2EX  ›  分享创造

分享一个新的 OpenWrt 上 Clash/Mihomo 的透明代理插件

  •  3
     
  •   morytyann · 127 天前 · 8235 次点击
    这是一个创建于 127 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址:morytyann/OpenWrt-mihomo

    功能:

    1. 透明代理(支持 TPROXY/TUN 模式,支持 IPv4 和/或 IPv6 代理)
    2. 局域网访问控制(根据 IP/MAC)
    3. 混入配置项(支持开启或关闭此功能,LuCI 包含了大部分常用的配置文件选项,还提供了混入文件内容的功能)
    4. 编辑器(在页面编辑上传的配置文件)
    5. 日志(插件日志/核心日志,核心日志可以查看自服务启动以来所有的日志)

    特点:

    1. 简洁易上手
    2. 非常原生(简陋)的界面
    3. 符合逻辑的配置项罗列

    因为不太喜欢 OC 的臃肿(我用了 4 年 OC ,没有说 OC 不好的意思,只是个人喜好),但我又喜欢使用 Clash/Mihomo ,于是我做了这个插件,主打简洁,在功能上保持克制,目标是做好透明代理就好。

    欢迎大家来试用/使用这个插件,如果能点个 Star 就更好了!

    第 1 条附言  ·  127 天前
    ❤️感谢大家!
    67 条回复    2024-12-24 15:18:27 +08:00
    qiaoqiao1235
        1
    qiaoqiao1235  
       127 天前
    晚上回去试一下,openclash 一直在用
    ko20
        2
    ko20  
       127 天前
    有空试一下,已 star
    yyzh
        3
    yyzh  
       127 天前 via Android
    有空看看.现在在用 passwall2
    afunnypiggy
        4
    afunnypiggy  
       127 天前
    openclash 已经停更了 不过内核一直在更新 Mihomo 才出 不知道咋样 一会儿试试
    afunnypiggy
        5
    afunnypiggy  
       127 天前
    MYDB
        6
    MYDB  
       127 天前 via iPhone
    clash 哪都好,就是不支持每个设备单独一套端口的规则
    Goooooos
        7
    Goooooos  
       126 天前
    需要的 openwrt 内核版本比较高,老版本的 openwrt 就别看了
    SkywalkerJi
        8
    SkywalkerJi  
       126 天前
    op 注意完全,oc 停更了。
    chanwang
        9
    chanwang  
       126 天前
    OpenClash 停止更新了? https://github.com/vernesong/OpenClash/issues/3990#issuecomment-2294885992
    我看作者前几天还回答 issues 呢。

    感谢分享,这个跟 V2rayA 的区别是什么呢?
    SenLief
        10
    SenLief  
       126 天前
    我想问一下,昨天我安装这个就没安装上,一直提示依赖问题,貌似是 firewall3 和 4 的问题?
    SenLief
        11
    SenLief  
       126 天前
    @afunnypiggy mihomo 都好多年了
    cxsz
        12
    cxsz  
       126 天前
    想偷点懒,有没有预编译的 ipk 可以用
    morytyann
        13
    morytyann  
    OP
       126 天前
    @cxsz release 里有的,基本所有的 arch 都有的
    morytyann
        14
    morytyann  
    OP
       126 天前
    @SenLief 只支持 firewall4 ( nftables )哦,不支持 firewall3 ( iptables )
    morytyann
        15
    morytyann  
    OP
       126 天前
    @chanwang 前段时间确实没有更新,最近又开始活跃了。
    区别的话,我还真没用过 v2rayA ,核心肯定不一样,其他的就不知道了……
    lin41411
        16
    lin41411  
       126 天前
    竟然是作者,之前看了七尺宇的 youtube ,了解到你这款插件。
    目前看基本上能平替 openclash 。
    不过个人建议(也有一些网友同样想法),在 Openwrt 里面的插件名字不要那么粗暴就叫 Mihomo ,这很容易引起误解,因为不少小白甚至分不清 GUI 和内核。可以考虑叫 Open-Mihomo 之类。
    最后感谢开发者开发的工具,Openclash 迁移过去基本上没难度,日后有时间虚拟机装个试试。
    ccc00
        17
    ccc00  
       126 天前 via iPhone
    请问这个插件支持 istoreOS 吗?
    penguinchow
        18
    penguinchow  
       126 天前
    @ccc00
    @ccc00 istoreos 用的是 firewall3 肯定不支持,希望能尽快升级到 firewall4 吧
    chanwang
        19
    chanwang  
       126 天前
    qiaoqiao1235
        20
    qiaoqiao1235  
       126 天前
    昨天晚上回去试了下,写下感受
    之前用 openclash 有三个问题
    1.ipv6 防火墙有问题,开启代理本机后,会默认劫持::0 的 dns 查询。如果开启白名单或者黑名单,这个时候不代理的设备的 dns 查询也会被 clash 劫持。需要在开发者选项里面自行处理
    ```
    nft flush chain inet fw4 nat_output
    nft add rule inet fw4 nat_output meta nfproto ipv6 tcp dport 53 ip6 daddr ::1 skuid != 65534 counter redirect to :7874
    ```
    2.开启 ipv6 代理后,不会代理本机的 ipv6 tcp ,需要在开发者选项里面自行处理
    ```
    nft add rule inet fw4 nat_output meta nfproto ipv6 meta l4proto tcp counter jump openclash_output_v6
    ```
    3.只支持 tcp redir+udp tproxy


    昨天用了下 OP 的插件,没有以上问题,支持 tcp+udp tproxy ,而且不会修改我的 fw4 流量表。比较满意,打算使用一段时间看看,感谢开发和分享。
    初步使用,有两个小建议:
    1.根据选择的模式时 tproxy 和 tun 模式来配置防火墙和配置文件,当前选择了 tproxy 模式,但是防火墙里面还是配置了 tun 的规则,配置文件也默认添加了 tun 的配置。
    2.跟第一个类似,有一些选项没选择也默认配置了防火墙规则,如过滤大陆 ip 没有开启,也还是默认配置了 @china_ip 相关规则。
    morytyann
        21
    morytyann  
    OP
       126 天前
    @chanwang 呃,不是我说的停更啊,我只是说:前段时间没有更新,最近又开始活跃了,有什么问题吗?
    morytyann
        22
    morytyann  
    OP
       126 天前
    @qiaoqiao1235 哈哈,因为我比较懒,nftables 的规则都在一个脚本文件里,代理模式是通过 jump 到不同的链来切换的,过滤大陆 IP 是通过 set 的元素来开关,所以这些规则/链都会存在,不过对性能影响不大,但是强迫症可能接受不了吧。
    morytyann
        23
    morytyann  
    OP
       126 天前
    @SkywalkerJi 会注意的,不过 OC 最近又开始更新了,应该没问题🐶
    morytyann
        24
    morytyann  
    OP
       126 天前
    @lin41411 我也在想要不要改个名,但是起名困难……
    Ccf
        25
    Ccf  
       125 天前
    @afunnypiggy 按照这个配置完启动起来了,但是上不去外网。
    楼主是什么原因呢?怎样将 clash 专用链接放到里面,能不能给个教程?
    七尺宇教程里出口接口是 lan ,这个是统一的么?
    morytyann
        26
    morytyann  
    OP
       125 天前
    @Ccf 出站接口,主路由选 Wan ,旁路由选 Lan ,无法上外网的话,可以去仓库提个 Issue 我看看
    ccc00
        27
    ccc00  
       125 天前 via iPhone
    @penguinchow 感谢回复↩️
    Ccf
        28
    Ccf  
       124 天前
    @morytyann 找到原因了,我在电脑上没有改 dns 为 openwrt 的 lan 地址
    订阅链接那三个选项什么不同?
    SenLief
        29
    SenLief  
       124 天前
    老哥这个插件怎么安装的啊?我为啥安装 ipk 一直报错啊
    Ccf
        30
    Ccf  
       124 天前
    @Ccf 搞错了,发现同时还开了 openclash ,关闭 openclash 后单开 mihomo 就不行了。卸载插件然后重新安装一遍,仍旧不行。来回折腾下来,发现:1.没有完全重置的办法,卸载重装插件时会提示有旧的配置。2.依赖于其他插件才能启动起来。3.订阅那里,不像 openclash 那样贴上配置然后更新就能用。按说完全不用转换配置,但用了完全不能用。4.订阅的 ua 有什么区别,不选择或者任意一个只要前面是专用 clash 链接完全应该可用。发现订阅这里弄错了连直连的网站也打不开。
    morytyann
        31
    morytyann  
    OP
       124 天前
    @Ccf
    1. 所有插件卸载重装都会提示有旧的配置啊,你可以卸载以后直接删除`/etc/config/mihomo`,就不会提示有旧配置了
    2. 订阅的话你是不是没有在`基础配置 -> 选择配置文件`那里选择?
    3. 订阅的 UA 和 OpenClash 一样啊,都是在下载订阅文件的时候用的,弄错了无法启动应该是因为下载的配置文件不正确

    建议你看一下仓库的 Wiki ,插件里也有贴上`使用说明`指向 Wiki
    morytyann
        32
    morytyann  
    OP
       124 天前
    @SenLief 是不是用的 firewall3 ( iptables )?这个不支持,如果不是你可以贴一下报错信息看看。
    SenLief
        33
    SenLief  
       124 天前
    @morytyann 应该是了,我其他的 lean 的版本的,好像都没有 firewall4
    Ccf
        34
    Ccf  
       124 天前
    @morytyann 先用 homeproxy 了,我觉得是目前最好用的了
    b1t
        35
    b1t  
       121 天前
    n1 安装上试了一下,发现日志里显示启动成功了,页面上还是没启动
    morytyann
        36
    morytyann  
    OP
       121 天前
    @b1t 装下 procd-ujail 看看
    NeedforV2
        37
    NeedforV2  
       121 天前
    不错不错!想问下 OP ,immoralwrt 能装吗? @morytyann
    morytyann
        38
    morytyann  
    OP
       120 天前
    @NeedforV2 可以的,23 以上肯定没问题,22 需要选择使用 firewall4
    b1t
        39
    b1t  
       120 天前
    @morytyann #36 安装 procd-ujail 后,又重装了最新版,正常了

    反馈第一次用遇到的几点问题:
    1. 建议将更新面板放在下面,不要启动后再更新呀,而且更新没有反馈感,我更新好几遍都没有成功打开,此外,切换面板后还要再更新已有面板才能生效

    2.我将订阅与上传的配置文件相互切换的时候,上传的配置文件总是切换不过去,重启了一下机器之后正常了

    3.第一次用频繁遇到保存应用不生效的情况(比如切换配置、切换 web 控制等等),机器重启后没再发生过

    是个好东西,没有 oc 那么多项需要配置,已经用上了,后续慢慢摸索一下

    建议放个新版本提醒,好及时用上新版本
    morytyann
        40
    morytyann  
    OP
       120 天前
    @b1t

    1. 更新模板现在不需要启动后更新了,核心支持自动下载了。更新反馈其实是按钮的加载状态,加载结束既更新完成。切换也可以自动下载,同步修改 UI 名称就好,按钮的话好像没有更好的地方放了,等看看吧。
    2. 重启后正常切换还是说重启后切换的才生效?如果是后者你可以关闭快速重载( v1.7.5 的选项),保证只要配置文件变更了就重启核心而不是让核心重载配置,这样应该会好。
    3. 这个没遇到过,可能是和其他插件冲突导致的?
    4. 更新提示不打算做,我就想做原生~~简陋~~的,官方源里绝大部分插件也不会说有更新提示,而且其实没有问题的话没必要更新,除非有你需要的功能/特性或者 BUG 修复

    感谢你的支持❤️
    b1t
        41
    b1t  
       120 天前
    @morytyann #40

    我猜测可能是 oc 造成的冲突,目前使用稳定,配置简单,重启速度也比 oc 快,而且发现之前安卓 tv 默认走 ipv6 解析,而 oc 劫持不到,需要关闭路由的 ipv6 ,使用本插件没有此问题,op 太酷啦!

    关于更新,我觉得至少内核更新还是要加上的~
    best117
        42
    best117  
       119 天前   ❤️ 1
    我也是通过油管七尺宇 了解到的这个插件各方面比 openclash 不差,作者更新也比较积极,完全可以替代 openclash ,就是刚开始习惯上可能要适应下
    Kale
        43
    Kale  
       93 天前
    请问 OP ,如果使用 Mihomo ,是不是就不太需要 mosdns 分流了?
    morytyann
        44
    morytyann  
    OP
       93 天前
    @Kale 我没用过 MosDNS ,也没有套其它的 DNS 服务。

    而且,如果只是分流的话,目前 Mihomo 的 nameserver-policy 已经可以处理这个了,国内域名用国内 DNS ,国外的域名用国外的 DNS 。
    Kale
        45
    Kale  
       93 天前
    @morytyann #44 好的,用了一下,感觉还可以。
    mountainl
        46
    mountainl  
       77 天前 via iPhone
    佬下午好,请问支持创建服务端吗?想创建 ss 代理连回家用。
    morytyann
        47
    morytyann  
    OP
       77 天前
    morytyann
        48
    morytyann  
    OP
       77 天前
    mountainl
        49
    mountainl  
       77 天前 via iPhone
    @morytyann 感谢佬,回家试试,同时期待更新功能。不知道是不是要涉及手动操作 nftables 防火墙,动手能力太差。
    cielpy
        50
    cielpy  
       68 天前   ❤️ 1
    感谢作者的付出,我的固件定制工具刚刚添加了 OpenWrt-mihomo 的支持,可以方便在通过 ImageBuilder 打包固件的时候安装 OpenWrt-mihomo https://github.com/EkkoG/OpenWrt/tree/master/modules/openwrt-mihomo

    另外一个个人的提议,菜单栏里的名字是不是可以去掉 TProxy 呢,因为项目不止支持了 TProxy 模式,TUN 和 Redirect 也有支持的,还有就是个人解决不是很美观(
    cielpy
        51
    cielpy  
       68 天前   ❤️ 1
    分享一个之前的笔记


    之前也有觉得 OpenClash 有点臃肿可以做一个精简版,不过最后没有付诸实践,感谢作者实现了!
    morytyann
        52
    morytyann  
    OP
       68 天前
    @cielpy 哈哈,现在不好改名了,你可以放个 patch 修改一下 menu 那里就行了。

    这个 TProxy 其实是 Transparent Proxy 的缩写,不仅仅是指 tproxy 模式。

    看你的笔记,我们想的差不多,所以我做的时候就想着要按照官方插件的实现,直接编译二进制,然后用 yq 来处理 yaml
    sxml2015
        53
    sxml2015  
       25 天前 via Android
    Lede 固件用不了 哎
    wlx65003
        54
    wlx65003  
       23 天前
    终于有个纯 tproxy 版本的插件了,感谢大佬!
    RefinedFish
        55
    RefinedFish  
       21 天前   ❤️ 1
    爱来自 CN❤️
    RefinedFish
        56
    RefinedFish  
       21 天前
    @sxml2015 没记错 lede 是 fw3 ,并且鄙视 fw4 ,所以高贵的 lede 不允许 mihomo 运行🐶
    cheukfh
        57
    cheukfh  
       15 天前
    希望能添加强制某 LAN IP 走代理的访问控制🥺
    Zroot
        58
    Zroot  
       14 天前
    大佬你好,请问这个工具支持像 passwall 一样开启一个 ss 协议的服务端么。我有一些需求需要用 ss 从公网连接回家里的内网,需要用达到 paswall 里的服务端工具。
    morytyann
        59
    morytyann  
    OP
       13 天前
    @Zroot #58

    核心支持,但是目前 LuCI 没有可视化的配置,可以参考核心的文档来配置。

    https://wiki.metacubex.one/config/inbound/listeners/ss/
    Zroot
        60
    Zroot  
       10 天前
    @morytyann #59 感谢,已经成功了。
    Zroot
        61
    Zroot  
       10 天前
    @morytyann #59 还有一个疑问,请问怎么配置家庭网络中 bt 下载不走代理呢。我是在 nas 中部署 docker 版本 qb 进行 bt 下载,这台部署 qb 的虚拟机 ip 与 openwrt 的 ip 是不同的,但 docker 中又有其他的服务可能是需要走代理的,唯一能区分 docker 中这些服务的就只有不同服务在 docker 的宿主机中所映射出的端口号有区别。这样的情况下应该怎么配置 yaml 文件呢
    vigerger
        62
    vigerger  
       8 天前
    请问下怎么更新?看了下 GitHub 只有安装和卸载指令,只能每次卸载重装吗
    morytyann
        63
    morytyann  
    OP
       7 天前
    @Zroot #61

    MACVLAN 了解一下,为 qb 的 docker 设置单独的 IP 和 MAC 地址,然后添加到插件访问控制黑名单
    morytyann
        64
    morytyann  
    OP
       7 天前
    @vigerger #62

    不是,卸载的脚本是用来干净卸载的,会删掉所有插件的配置和文件。
    如果你通过 feed 安装,以后直接从软件包里更新就可以了,如果是直接通过安装脚本安装,想更新的时候再运行一次安装脚本就可以更新了。
    vigerger
        65
    vigerger  
       7 天前
    @morytyann 好滴~谢谢~好用爱用
    xuhuanzy
        66
    xuhuanzy  
       2 天前 via Android
    比 openclash 逻辑顺畅,伟大
    xuhuanzy
        67
    xuhuanzy  
       2 天前 via Android
    @morytyann
    "不是,卸载的脚本是用来干净卸载的,会删掉所有插件的配置和文件。"

    似乎不是,我把核心搞消失了,重装后配置还在
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3284 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:39 · PVG 19:39 · LAX 03:39 · JFK 06:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.