10.3 配置 Mihomo
安装 mihomo
# pkg install net/mihomo# cd /usr/ports/net/mihomo/
# make install cleanRC 脚本
RC 脚本
#!/bin/sh
. /etc/rc.subr # 引入 rc.d 脚本框架
name="mihomo" # 定义服务名
desc="mihomo server" # 服务描述
rcvar="mihomo_enable" # 服务开关变量
: ${mihomo_datadir:="/var/run/mihomo"}
: ${mihomo_user:="root"} # 默认用户;如使用其他用户,请确保 /etc/mihomo 目录及 $pidfile 和 log 文件可写
: ${mihomo_extra_flags:=""} # mihomo 的额外参数
procname="/usr/local/bin/mihomo" # 与 pidfile 配合,用于检测服务进程
pidfile="${mihomo_datadir}/mihomo.pid" # 用于检测服务进程
logfile="${mihomo_datadir}/mihomo.log"
start_cmd="mihomo_start" # 设置 start 命令调用 mihomo_start 函数,stop 等命令由 rc.d 框架默认实现
extra_commands="init reconfig regeoip" # 设置其他的自定义命令
reconfig_cmd="mihomo_reconfig" # 指定 reconfig 命令调用 mihomo_reconfig 函数,用于下载 config.yaml 文件
regeoip_cmd="mihomo_regeoip" # 指定 regeoip 命令调用 mihomo_regeoip 函数,用于下载 geoip.dat 文件,可通过 mihomo_extra_flags="-m" 指定使用该文件
init_cmd="mihomo_init" # 指定 init 命令调用 mihomo_init 函数。创建数据文件目录,指定属主,避免普通用户身份执行时的读写权限问题
mihomo_start()
{ # 使用 daemon 启动 mihomo,指定 -p 参数使用 pidfile,使 mihomo 成为 daemon 的子进程,由 daemon 自动管理 pidfile,从而在 mihomo 进程退出时自动清理 pidfile
daemon -u ${mihomo_user} -p "$pidfile" -o "${logfile}" $procname -d "${mihomo_datadir}" -f "${mihomo_datadir}/config.yaml" ${mihomo_extra_flags}
}
mihomo_reconfig()
{
startmsg "begin to refresh config.yaml"
startmsg "config.yaml : ${mihomo_config}"
if ( fetch -o ${mihomo_datadir}/config.yaml.new "${mihomo_config}" );then
mv ${mihomo_datadir}/config.yaml.new ${mihomo_datadir}/config.yaml # 下载成功将覆盖原有配置,下载失败保留原有配置
startmsg "rename config.yaml.new to config.yaml"
else
err "fetch config.yaml failed! check $$mihomo_config!"
fi
}
mihomo_regeoip()
{
startmsg "begin to refresh geoip.dat"
startmsg "geoip.dat : $mihomo_geoip"
if ( fetch -o ${mihomo_datadir}/geoip.new "${mihomo_geoip}" );then
mv ${mihomo_datadir}/geoip.new ${mihomo_datadir}/geoip.dat
startmsg "rename geoip.new to geoip.dat"
else
err "fetch geoip.dat failed! check $$mihomo_geoip"
fi
}
mihomo_init()
{
startmsg "begin init"
install -d -m 0700 -o ${mihomo_user} ${mihomo_datadir}
startmsg "all data is in ${mihomo_datadir}"
startmsg "remember reconfig/regeoip before start"
}
load_rc_config $name
run_rc_command "$1"可用参数及选项
最小 RC 示例
未竟事项
Clash for FreeBSD
下载项目
启动程序
重启程序
访问 Web 端
停止程序
参考资料
未竟事宜
最后更新于