clash.nix 846 B

1234567891011121314151617181920
  1. { config, pkgs, ... }:
  2. {
  3. systemd.services.clash = {
  4. wantedBy = [ "multi-user.target" ];
  5. after = [ "network-online.target" ];
  6. description = "Clash Service";
  7. serviceConfig = {
  8. Type = "simple";
  9. User = "clash";
  10. Group = "clash";
  11. ExecStartPre = "ip rule add fwmark 0x233 lookup 100 && ip route add local 0.0.0.0/0 dev lo table 100";
  12. ExecStart = "${pkgs.clash-meta}/bin/clash-meta -d /etc/clash";
  13. ExecStop = "ip route del local && ip rule del fwmark 0x233 lookup 100";
  14. Restart = "on-failure";
  15. CapabilityBoundingSet="CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW";
  16. AmbientCapabilities="CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW";
  17. };
  18. };
  19. environment.systemPackages = [ pkgs.clash-meta ];
  20. }