Mihomo
Mihomo 是 Clash 系列的衍生版本,已收录于 FreeBSD Ports 树中(net/mihomo)。本节给出安装与基本配置步骤。
安装 Mihomo
使用 pkg 安装:
# pkg install mihomo或者使用 Ports 安装:
# cd /usr/ports/net/mihomo/
# make install cleanMihomo 文件结构
Mihomo 的文件结构如下:
/usr/
├── ports/
│ └── net/
│ └── mihomo/ # Mihomo Ports 目录
├── local/
│ ├── bin/
│ │ └── mihomo # Mihomo 可执行文件
│ └── etc/
│ └── rc.d/
│ └── mihomo # Mihomo RC 服务脚本
└── etc/
└── rc.conf # 系统服务配置文件Mihomo 也可通过 FreeBSD 的 Linux 二进制兼容层运行 Linux 版本,但建议优先使用原生 FreeBSD 版本(net/mihomo),兼容层仅作为备选方案。
RC 脚本
已向 Ports 维护者提交了合并请求(Bug 291295 - net/mihomo: Add rc.conf and some Post-installation),旨在为 Mihomo 添加系统服务管理支持,截至撰稿时尚未获得回应。官方集成完成前,可使用下文提供的自定义 RC 脚本实现服务化管理。
自定义 RC 脚本
为便于管理 Mihomo 服务,可使用以下脚本。将以下脚本保存为 mihomo,存放至 /usr/local/etc/rc.d/,随后使用 root 账户赋予可执行权限:chmod +x /usr/local/etc/rc.d/mihomo。
可用参数及选项
RC 脚本提供了多个命令行参数和配置选项,以下列举常用参数。这些命令会直接将配置写入 /etc/rc.conf 文件,如果配置有误,可直接修改对应行。
启用 Mihomo 服务并设置开机自启动:
启动 Mihomo 服务进程:
停止 Mihomo 服务进程:
查看 Mihomo 服务运行状态:
指定订阅链接地址(示例地址仅作演示用途,需替换为有效链接):
GeoIP 数据根据 IP 地址的地理归属实现流量分流或规则匹配:
指定 Mihomo 的额外参数:
-m:启用 geodata 模式,使 Mihomo 使用 geoip.dat 和 geosite.dat 文件(DAT 格式)匹配规则,而非默认的 MMDB 格式(Country.mmdb)。指定运行 Mihomo 服务的用户身份:
指定 Mihomo 的数据目录:
相关文件结构:
初始化 Mihomo 的数据目录,准备服务运行环境:
更新订阅配置。执行
start前先行更新,确保配置文件为最新版本:
更新 GeoIP 地理位置数据库:
最小 RC 示例
以下为最简配置示例,可在理解其含义后按需修改并写入 /etc/rc.conf 文件:
未竟事宜
以下为待研究的问题:
如何实现“直连”“代理”“全局”三种模式的分流?
如何实现 TUN 虚拟网卡代理?TUN 模式可实现更底层的网络流量拦截。
如何根据订阅链接测试节点速度?
如何指定订阅链接中代理组的特定节点(例如仅使用位于美国的某个代理节点)?这涉及代理节点的精细化选择。
Clash for FreeBSD
环境准备
FreeBSD 的默认登录 Shell 是 sh 而非 bash,执行以下命令前必须先切换至 bash:
建议使用 root 权限账号。
说明:
当前脚本通过
bash执行。freebsd-rc后端依赖service与 /usr/local/etc/rc.d。
安装与初始化
首次配置:
FreeBSD 服务管理(rc.d)
系统安装默认使用 freebsd-rc 后端,服务名:clash_freebsd。
管理内核服务开机自启动:
说明:
clashctl autostart on仅控制 rc.d 服务是否随系统启动。service与autostart命令需要 root 权限(请使用 root 或sudo)。FreeBSD 自启动配置文件:/etc/rc.conf.d/clash_freebsd。
Tun 与路由诊断(FreeBSD)
Tun 设备通常为 /dev/tun*。
Tun 未生效时优先检查:
tun on/off需要 root 权限ls -l /dev/tun*当前用户权限(建议 root)
默认路由是否已接管到 tun 接口
常用排障命令
卸载
彻底清理运行时数据:
参考文献
wenyinos. 一个更完整、更优雅的 FreeBSD Clash / Mihomo 运行平台[EB/OL]. [2026-04-26]. https://github.com/wenyinos/clash-freebsd. 提供了 FreeBSD 下 Clash 代理的完整部署方案,支持订阅链接管理。
未竟事宜
与 Bash 解耦,支持默认 sh,更好适配 FreeBSD 默认环境。
最后更新于