Mihomo 科学上网配置指南
1. 前言
家里有一台NAS服务器,有科学上网需求。所以上网找了下 Mihomo 部署的材料。
2. 准备工作
在开始之前,请确保您的环境满足以下条件:
Docker 环境:已安装 Docker 及 Docker Compose。
基础知识:熟悉基本的命令行操作(创建文件夹、编辑文件)。
网络环境:拥有可用的节点订阅链接。
3. 开始操作
准备 config.yaml 文件
市面上一般用的科学上网都是 Mihomo/clash。
创建文件夹,命名为
mihomo。在其中创建一个
config.yaml文件。模板参考如下

提前下载 GeoIP/GeoSite 数据库文件
容器启动,一定会出现报错:
level=fatal msg="Parse config error... can't download MMDB: context deadline exceeded"。这里先提前下载好文件,避免容器启动出错。
前往 MetaCubeX/meta-rules-dat 下载以下文件:
geoip.datgeosite.datcountry-lite.mmdbGeoLite2-ASN.mmdb
将这4个文件手动上传到宿主机的
mihomo文件夹(与config.yaml同级)。
4. 部署 Mihomo 核心 和 Metacubexd (WebUI)
建议:在 mihomo 同级文件夹,创建 docker-compose.yml 文件。
关键配置说明 (TUN 模式支持): 为了支持 TUN 模式(虚拟网卡),容器必须拥有网络管理权限。所以在配置中加入了
cap_add: [NET_ADMIN]和devices: [/dev/net/tun],这是实现透明代理的关键。
| |
5. 启动容器
在 docker-compose.yml 目录执行如下命令:
| |
一般NAS都具有图形化系统,可以直接在docker管理中创建Docker Compose项目,导入 docker-compose.yml 文件,启动容器即可。
6. 配置 WebUI
打开浏览器访问:
http://设备IP:9097。进入设置页面,添加后端:
API Base URL:
http://设备IP:9090Secret: 在 config 第 7 行设置的 API 访问密钥
7. 进阶:关于 TUN 模式与透明代理
TUN 模式允许 Mihomo 创建一个虚拟网卡,接管设备上所有层级的流量(包括不走系统代理的终端命令、游戏等)。
为什么需要特殊权限?
在 Docker 中,默认容器是没有权限创建网络设备的。要启用 TUN 模式,必须在启动参数中显式声明:
--cap-add=NET_ADMIN:允许容器修改网络堆栈。--device=/dev/net/tun:允许容器访问 Linux 的 TUN 字符设备。
在本文提供的 docker-compose.yml 中,已经默认添加了这两项配置。
如何启用?
确保 Docker 配置已包含上述权限参数。
在 WebUI 的设置页面中勾选 TUN 模式。
或者在
config.yaml中将tun: enable设置为true并重启容器。
此时,配合路由表的设置,Mihomo 即可变身为一个网关,实现透明代理。
