Mihomo core setup and first run
Extract ZIP and GZ files first. On Unix-like systems, make the binary executable and prepare a dedicated configuration directory. Place a valid config.yaml in the target directory, then use the following command to check it. This assumes the current directory contains an executable named mihomo.
chmod +x ./mihomo
./mihomo -t -d ./config
./mihomo -d ./config
A successful configuration check doesn’t mean every external resource is ready. Rulesets, geodata and remote subscriptions may still be affected by network access or file paths. Run the core in the foreground first and check its output, ports, rules and DNS behavior before creating a systemd service or firmware startup task. Don’t hide all logs from the start.
If your configuration exposes an external control interface, restrict its listening address and set access controls. For local use, there’s no need to expose the management port to your LAN or the public internet. See the user guide for permissions, directories and background operation.
| Check | Requirement |
| CPU and OS | The binary architecture and operating system must match the device. For routers, also check firmware compatibility. |
| Configuration and data directories | The service account must be able to read the configuration and, as needed, write caches, rulesets and databases. |
| Network permissions | Local proxy ports, TUN and routing changes require different permissions. Configure access for the mode you actually use. |