کلش ورج برنامهای گرافیکی است؛ بدون X یا Wayland اصلاً اجرا نمیشود. اما خود هسته یک برنامهٔ سادهٔ خط فرمانی است و اجرای مستقیمش همان کاری را میکند که نسخهٔ دسکتاپ از طرف شما انجام میداد.
چهار قدم تا یک سرویس فعال
- از صفحهٔ انتشار mihomo فایل مناسب معماری خود را بگیرید (با
uname -mچک کنید)، از حالت فشرده دربیاورید، اجراییاش کنید و در/usr/local/bin/mihomoبگذارید. - پوشهٔ کاری
/etc/mihomoبسازید و کانفیگ را با نامconfig.yamlدر آن بگذارید. همان فایل دسکتاپ بدون تغییر کار میکند؛ فیلدهای مخصوص کلاینت را هسته نادیده میگیرد. - یونیت سرویس زیر را بنویسید.
systemctl daemon-reload && systemctl enable --now mihomo.
[Unit]
Description=mihomo daemon
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
اگر TUN لازم دارید، خط AmbientCapabilities=CAP_NET_ADMIN را اضافه کنید؛ از اجرای کل سرویس با کاربر root امنتر است.
وقتی پنجرهای نیست، لاگ همهچیز است
دستور journalctl -u mihomo -f لاگ را زنده نشان میدهد. کانفیگ که ایراد داشته باشد هسته بیرون میآید و دقیقاً همان خط را چاپ میکند — سرراستتر از گشتن در رابط گرافیکی. سرویس بالا نیامد، اول همینجا را ببینید؛ جواب معمولاً یک خط است.
جزئیات بیشتر خواستید، موقتاً log-level را روی debug بگذارید و بعد به info برگردانید. خروجی debug خیلی حجیم است و روی دیسک کوچک زود همهجا را پر میکند.
استفاده و مدیریت
ابزارهای خط فرمان روی همان دستگاه به متغیرهای محیطی نیاز دارند، همانطور که در پراکسی برای ترمینال آمده:
export https_proxy=http://127.0.0.1:7897
export http_proxy=http://127.0.0.1:7897
اگر میخواهید از یک داشبورد مدیریتش کنید، external-controller را به 0.0.0.0 نبندید. روی 127.0.0.1:9097 نگهش دارید و هر وقت لازم شد پورت را با SSH پیش خودتان بیاورید:
ssh -L 9097:127.0.0.1:9097 user@your-server
بعد داشبورد محلی را به 127.0.0.1:9097 وصل کنید. کارهایی که این API میکند در راهنمای کنترل خارجی آمده است.
external-controller: 0.0.0.0:9097 با یک secret ضعیف یعنی کنترل هسته را روی اینترنت گذاشتهاید. اسکنرها ظرف چند ساعت پیدایش میکنند.
بهروزرسانی خودکار اشتراک
کلاینتی در کار نیست، پس زمانبندی با cron است: اشتراک را روی کانفیگ فعلی بگیرید و سرویس را ریاستارت کنید. ریاستارت همهٔ اتصالهای باز را قطع میکند، پس ساعتی را انتخاب کنید که کسی از سرور استفاده نمیکند؛ معمولاً چهار صبح.
قبل از جایگزینی، فایل را بسنجید: mihomo -t -d /etc/mihomo کانفیگ را میخواند و خطاها را گزارش میدهد. فقط اگر قبول شد بازنویسی و ریاستارت کنید، وگرنه یک اشتراک خراب سرویس را در حلقهٔ ریاستارت میاندازد. اگر ترجیح میدهید اول روی دسکتاپ تنظیم کنید و بعد منتقلش کنید، از آموزش نصب روی لینوکس شروع کنید.