请注意,本文编写于 147 天前,最后修改于 22 天前,其中某些信息可能已经过时。
前两天刚领了大礼包,这几天休息的很舒服。昨天闲来无事就准备安装一下mihomo,因为之前安装的clash无法使用clash-meta订阅,而且部分小机场貌似只有clash-meta的链接,群晖上的clash无法使用,之前不是买了100g的订阅闲置到现在,也是该升一下子了。
昨天上午的时间全用来验证mihomo映像了,容器不是一直重启就是报错缺少参数,直接给干破防了。下午就索性看书去了,结果晚上就收到佬的消息,说在研究clash-meta,起身又折腾了两小时,这次不重启了,直接无法安装,干无语了,还是躺着舒服些。今天早上发现佬昨晚测试到半夜一点多,索性就再次尝试一下,结果还成功了,删除再次从新安装依旧能跑,这便赶紧码字发文。
安装 mihomo
站点水印:www.onemuggle.com
成功效果
效果图片
关闭之前安装的Clash
- 右击
容器名
选择停止
,先把这两个给停止了
下载映像包(这玩意折腾半天)
- 站内备份:
https://muggle11.lanzouu.com/b009h3gdqb
密码:1101 - 站内备份:
https://www.onemuggle.com/go/140614061406/
- 总共4个文件:
tar
结尾的安装包、mihomo.zip
是懒人包、YAML配置.txt
是安装代码 - 在
映像
-操作
-导入
-从文件添加
-从本地设备
设置config.yaml文件
建议使用 mihomo.zip 懒人包,可大大减少失败几率
修改 config.yaml 中订阅链接时,订阅链接需要使用Clash / Clash-meta 订阅,另外注意需替换【订阅链接】这4个字!!!
- 解压后可直接把
mihomo
文件夹拖到docker文件夹下(懒人包,修改订阅链接后,可跳过下面步骤) File
-docker
-新增
-文件夹
-输入mihomo
- 可解压
mihomo.zip
,找到config.yaml
,右击文本打开,搜索订阅链接
,替换文本并保存,上传到 mihomo文件夹下 - 访问 GitHub 下载:geoip.dat、geoip.metadb、geosite.dat 三个文件 ,上传到 mihomo文件夹下
- 在mihomo文件夹下,再次新建一个文件夹
metacubexd
添加docker项目
- 右击
metacubexd文件夹
选择属性
- 复制文件路径
- 替换
YAML配置.txt
内的路径(注意前面有空格) - 打开docker选择
新增
- 输入名称
mihomo
,路径选择 刚在docker文件夹内新建的mihomo,来源选择 创建yml - 把修改过的
YAML配置.txt
复制进去 - 依次点击:下一步 完成 关闭
- 浏览器建议使用谷歌浏览器的无痕模式,并需要暂时关闭浏览器的广告拦截器(ABP) ,浏览器输入群晖IP+9097端口,后台地址 输入群晖IP+9090端口 (不能使用https开头,必须是http或者直接ip+9090)
- 也可以使用之前的,右击启动
- 不会操作或没安装的,看之前的教程哈
'/dev/net/tun'报错已解决(容器无法自启动)
这几天给群晖加了一个ups然后就遇到这个问题,群晖正常关机后mihomo无法重启,有报错 bind mount failed :'/dev/net/tun' does not exist
,报错原因是 容器挂载失败是因为群晖 DSM 本身就没有 /dev/net/tun,并不是 Docker 的错
,目前问题已解决。
凡是群晖创建的容器并且有 '/dev/net/tun' 报错字样的,需要使用方法1 来解决!!!经测试群晖断电后自动开机和手动开关机,容器都不会再报错!
方法1、最稳妥方法(开机计划创建文件)
- 大部分 x86 群晖机型(如 DS920+、DS220+、DS1621+)都支持,某些低端、ARM 架构的机型可能不支持(如 DS218j、DS120j)
- 打开群晖
控制面板
,选择任务计划
新增
-触发的任务
-用户定义的脚本
- 任务名称:
WOL
,用户账号:root
,事件:开机
,点击确定
用户定义的脚本
粘贴下面代码后点击确定
if [ ! -c /dev/net/tun ]; then
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun
fi
- 弹出确定后输入密码即可
- 在
任务计划
中查看是否勾选已启动
'Failed to fetch' 报错解决思路
- 打开谷歌浏览器,关闭广告拦截插件,打开无痕窗口
- 浏览器输入 群晖IP地址+9090 页面有显示 【{"hello":"mihomo"}】代表安装mihomo成功,反之检查mihomo容器是否正常启动无报错(另注意端口是否被占用)
- 浏览器输入 群晖IP地址+9097(例如:192.168.123.233:9097 冒号是英语状态下的)
- 后端地址输入
192.168.123.233:9090
,取消掉前缀http://
60 条评论
请教一下,群晖7.2,无法使用tun模式,在config中设置enable true后,通过面板查看,tun开关还是关闭的。也确实无法使用tun进行转发。请问我应该怎么排除故障。还有在群晖的网络中设置了代理服务器后,docker倒是能正常拉取,但是google还是无法ping通,所以才想使用tun模式。
这个已经有佬做过测试了【通过梯子好像就是ping不通,通过ssh用curl github.com看看】
建议使用【curl -I https://www.google.com】进行测试,或者直接使用【Cloud Sync】套件连接谷歌云进行测试
【tun模式】过于复杂有需求的佬可以自行研究哈
我的一直报错 fail to fetch 后端地址添加不进去 是什么原因啊..... 能检查的地方都检查了 难道是机场不行?
是卡在 群晖ip+9097,添加端口为9090 这边不成功还是什么?
没遇到【 fail to fetch 】报错,gtp给的方向是 订阅链接错误
安装mihomo的时候使用的懒人嘛,检查一下 群晖ip+9090 会显示 【{"hello":"mihomo"}】
不过我关闭远程唤醒的容器 也删掉了路由的条目之后 按照你说的群晖IP+9090 显示的是拒绝访问 并不是 hello mihomo 我确实用的是懒人。是不是哪里疏忽了
浏览器访问 群晖IP+9090 显示的是拒绝访问,那就是你mihomo安装失败或者没正常启动
先确认 群晖IP+9090 访问显示 【{"hello":"mihomo"}】才是正常启动
果然跟我想的一样,解决了! 就是因为之前我WOL的一个容器占用了9090的原因。需要删除这个冲突端口后 关闭项目,清除, 重新构建就好了!
感觉应该是我安装mihomo的时候端口占用了 所以现在我即使删了之前的也不行。我需要重新安装一下 我估计就可以了 试试看 一会回来说结果
我知道为啥了 9090的端口我占用了 在路由里面映射了wol的远程唤醒。
等我晚上回家试试 在外面搞不了内网地址,浏览器没映射出来。
看到你更新了新办法 都试试看吧 晚上回复
会不会是因为浏览器插件拦截?
插件关掉了...... 也检查了几个文件修改的地方都没有问题。
我也是这样,有解决嘛
我的搞定了兄弟 你看看上面的沟通吧。这下docker终于又能用起来了。
Container metacubexd Creating
Container mihomo Creating
Container metacubexd Created
Container mihomo Created
Container mihomo Starting
Container metacubexd Starting
Container metacubexd Started
Error response from daemon: Bind mount failed: '/dev/net/tun' does not exist
Exit Code: 1
安装报错怎么办哇
任务名称:WOL ,用户账号:root ,事件:开机 ,点击确定
用户定义的脚本 粘贴下面代码后点击确定
if [ ! -c /dev/net/tun ]; then
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun
fi
博主这块说的不明白 我也是研究了很久才过去的。不过我卡在另一个位置了......
感谢我已经成功,你卡在那里了?OωO
感谢回复,现在答复如下:
1.订阅节点在电脑clash以及iOS shadowrocket上可以使用;
2.你提供的节点我输入config.yaml之后可以显示,但是仍不能魔法上网,可能是没流量了。
现在我想再次请问:会不会和我的机场订阅链接有关?因为我的订阅链接不是.yaml结尾的,而是https://xxxxx?token=xxxx
后台这边 打码改了你的链接地址哈!
已经排除了许多问题,应该是机场不太好,太便宜了,刚刚更换机场是可以的
你不会用的是赔钱吧....我的一直报错 fail to fetch 后端地址添加不进去 是什么原因啊.....
已经设置完毕,项目运行正常,但是还是无法拉取docker库,网页页面已经成功显示正确的节点信息,在网页里还需要怎么设置一下吗?
没有安装之前的clash的docker端,我理解的是mihomo直接使用项目里设置的梯子让群晖直接访问外网,理解是否正确?
可以的啊,你在群晖网络设置里面添加网络代理就可以了【地址为群晖ip地址,端口为7890】
群晖添加代理后,一般情况下可以直接拉取docker库
感谢回复,就是安装了mihomo之后,还是需要用电脑端的clash群晖才能科学吗?
网络代理就可以了【地址为群晖ip地址,端口为7890】
手机电脑同理,需要在同一网络下才能使用
感谢分享,原来是差这一步,终于搞定了,非常感谢~!
构建的时候提示这个,好像是拉取不了镜像源,怎么解决呢
mihomo Pulling mihomo Error Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) metacubexd Pulling metacubexd Error context canceled Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) Exited:0
使用映像包,有提供的
或者更换镜像源
求助最后一步显示这个,mihomo不能运行
Error response from daemon: Bind mount failed: "/dev/net/tun'
does not exist
问了DS,SSH登录执行下
sudo mkdir -p /dev/net
sudo mknod /dev/net/tun c 10 200
sudo chmod 666 /dev/net/tun
貌似之前也遇到过,建议使用提供的懒人包,然后把文件夹的名字修改一下,不要再用mihomo了,祝你好运
想问下如果7.1没有docker compose怎么安装,那一步创建docker compose.yml不知道怎么搞
目前再用7.2的版本无法提供准确的答复哈
但是deepseek给了两个解决方案,你可以自行尝试一下,deep seek输入如下问题【群晖7.1 没有docker compose怎么安装,那一步创建docker compose.yml不知道怎么实现】外加上传文本【YAML配置.txt】
新增项目的时候失败,显示如下
Container metacubexd Started
Error response from daemon: Bind mount failed: '/dev/net/tun' does not exist
这个是啥原因?
问了DS,SSH登录执行下
sudo mkdir -p /dev/net
sudo mknod /dev/net/tun c 10 200
sudo chmod 666 /dev/net/tun
建议删除重来,使用站内的压缩包成功率会很大
现在又发现个神奇的现象,群辉jellyfin的metatube插件,在不开启tun模式他刮不出东西来,开了tun模式皎月连就用不了,一连接就崩,皎月连被停止
老哥这个可以自己添加规则嘛
可以的,自行添加修改就行了
好的,谢谢老哥
Failed to fetch,每次卡在yacd大半天
我也卡在这,请问一下这个怎么解决
找到问题了,你文档的排版被修改了,从文件的txt导入修改的没问题
老哥这个可以正常刮削了嘛
老哥这个可以正常刮削了嘛
能正常用,如果不行,你注意下刮削的地址有没有正确填写localhost啥的
老哥这个可以自己添加规则嘛
我这个刮削好像还是不走代理
tun模式貌似得打开,但是会引发其他问题
试试修改规则可行不?
目前还在旅游没法验证哈
能用,但是可能是我订阅问题,用规则写端口放通总被覆盖
好的,反馈收到
能否留个飞机想咨询一下,mihomo部署成功,主路由网关改了mihomo IP没有效果,面板没有连接数。
建议先使用手机WiFi先验证一下有没有问题,同一局域网下,链接WiFi在输入后勾选高级选项,【代理:手动】【服务器主机名:192.168.123.233(自己的群晖的IP)】【服务器端口:7890】点击链接WiFi
WiFi链接成功是能够同时打开油管和B站的
再看面板链接,就会有记录的,对应的源地址就是手机内网IP,没有显示记录的话,检查一下是否在一个局域网内或者查看mihomo日记是否正常
mihomo的面板推荐使用【metacubexd】可显示多个订阅
测试了socks端口可以用,主要我想局域网全部代理。主路由指向群晖IP没效果。。不知道哪里错了
老哥这个可以正常刮削嘛