Jump to content

Mihomo: Difference between revisions

From NixOS Wiki
Oluceps (talk | contribs)
Marked this version for translation
Klinger (talk | contribs)
 
(One intermediate revision by one other user not shown)
Line 2: Line 2:
<translate>
<translate>
<!--T:1-->
<!--T:1-->
'''[https://github.com/MetaCubeX/mihomo/tree/Alpha mihomo]''' <span lang="en" dir="ltr">(formerly known as clash-meta), is a widely-used anti-censorship proxy application.</span>
'''[https://github.com/MetaCubeX/mihomo/tree/Alpha mihomo]''' (formerly known as clash-meta), is a widely-used anti-censorship proxy application.


<!--T:4-->
<!--T:4-->
<span lang="en" dir="ltr">Enable mihomo service on NixOS:</span>
Enable mihomo service on NixOS:


<!--T:5-->
<!--T:5-->
Line 16: Line 16:
</syntaxhighlight>
</syntaxhighlight>


=== <span lang="en" dir="ltr">TUN Mode</span> === <!--T:6-->
=== TUN Mode === <!--T:6-->


<!--T:2-->
<!--T:2-->
<span lang="en" dir="ltr">NOTICE: The [https://search.nixos.org/options?channel=unstable&show=services.mihomo.tunMode&from=0&size=50&sort=relevance&type=packages&query=mihomo tunMode option] in NixOS module only grants necessary permissions for the service. To actually enable TUN, you need to edit the '''configFile'''. See [https://wiki.metacubex.one/config/inbound/listeners/tun/?h=tun official documentation].</span>
NOTICE: The [https://search.nixos.org/options?channel=unstable&show=services.mihomo.tunMode&from=0&size=50&sort=relevance&type=packages&query=mihomo tunMode option] in NixOS module only grants necessary permissions for the service. To actually enable TUN, you need to edit the '''configFile'''. See [https://wiki.metacubex.one/config/inbound/listeners/tun/?h=tun official documentation].


=== <span lang="en" dir="ltr">Troubleshooting</span> === <!--T:3-->
=== Troubleshooting === <!--T:3-->


<!--T:7-->
<!--T:7-->
<span lang="en" dir="ltr">If encountering issues with transparent proxy:</span>
If encountering issues with transparent proxy:
* <span lang="en" dir="ltr">Check kernel logs with <code>dmesg</code></span>
* Check kernel logs with <code>dmesg</code>
* <span lang="en" dir="ltr">If seeing massive "refuse" messages for specific network devices:</span>
* If seeing massive "refuse" messages for specific network devices:
** <span lang="en" dir="ltr">NixOS enables firewall by default, try disabling firewall</span>
** NixOS enables firewall by default, try disabling firewall
** <span lang="en" dir="ltr">If problem is solved, try sequentially:</span>
** If problem is solved, try sequentially:
*** <span lang="en" dir="ltr">Add tun device to <code>trustedInterfaces</code></span>
*** Add tun device to <code>trustedInterfaces</code>
*** <span lang="en" dir="ltr">Disable <code>checkReversePath</code></span>
*** Disable <code>checkReversePath</code>
* <span lang="en" dir="ltr">If seeing massive "refuse" messages for specific ports:</span>
* If seeing massive "refuse" messages for specific ports:
** <span lang="en" dir="ltr">Try allow the tproxy port in firewall if you're trying tproxy transparent proxy.</span>
** Try allow the tproxy port in firewall if you're trying tproxy transparent proxy.


== <span lang="en" dir="ltr">See also</span> == <!--T:8-->
== See also == <!--T:8-->


<!--T:9-->
<!--T:9-->
* [https://blog.nyaw.xyz/nixos-inwall-install <span lang="en" dir="ltr">NixOS installation and usage under a censored network (zh-cn)</span>]
* [https://blog.nyaw.xyz/nixos-inwall-install NixOS installation and usage under a censored network (zh-cn)]


</translate>
</translate>
[[Category:Applications]]
[[Category:Networking]]

Latest revision as of 16:22, 4 March 2025

mihomo (formerly known as clash-meta), is a widely-used anti-censorship proxy application.

Enable mihomo service on NixOS:

services.mihomo = {
  enable = true;
  configFile = "/path/to/config.yaml";
  #...
};

TUN Mode

NOTICE: The tunMode option in NixOS module only grants necessary permissions for the service. To actually enable TUN, you need to edit the configFile. See official documentation.

Troubleshooting

If encountering issues with transparent proxy:

  • Check kernel logs with dmesg
  • If seeing massive "refuse" messages for specific network devices:
    • NixOS enables firewall by default, try disabling firewall
    • If problem is solved, try sequentially:
      • Add tun device to trustedInterfaces
      • Disable checkReversePath
  • If seeing massive "refuse" messages for specific ports:
    • Try allow the tproxy port in firewall if you're trying tproxy transparent proxy.

See also