A simple Python Pydantic model for Honkai: Star Rail parsed data from the Mihomo API.
Find a file
YanceyChiew 427a377c2a refactor: Decouple .Cleanup from ReCreateTun
The listener.Cleanup method will be called during
executor.Shutdown and route.restart, so it should serve
all kinds of listeners rather than a single tun device.

Currently listener.ReCreateTun will call it to handle
some internal affairs, This should be decoupled.

In this way, the cleanup tasks for data outside the
process life cycle that other listeners will add here
in the future will not be accidentally triggered
by configuring tun.
2023-09-02 14:12:53 +08:00
.github chore: update go1.21.0 release 2023-08-09 17:26:24 +08:00
adapter feat: ntp service 2023-09-02 02:15:46 +08:00
common fix: ntp service panic 2023-09-02 12:37:43 +08:00
component feat: ntp service 2023-09-02 02:15:46 +08:00
config feat: ntp service 2023-09-02 02:15:46 +08:00
constant chore: using uint16 for ports in Metadata 2023-08-09 13:51:02 +08:00
context chore: Update dependencies 2023-04-09 15:40:17 +08:00
dns chore: using uint16 for ports in Metadata 2023-08-09 13:51:02 +08:00
docker chore: better workflow 2023-03-01 13:41:25 +08:00
docs feat: add udp-over-stream for tuic 2023-08-21 12:37:39 +08:00
hub fix: RESTful api missing TunConf.device 2023-09-02 14:12:53 +08:00
listener refactor: Decouple .Cleanup from ReCreateTun 2023-09-02 14:12:53 +08:00
log chore: using sing-shadowtls to support shadowtls v1/2/3 2023-02-21 21:58:37 +08:00
ntp fix: ntp service panic 2023-09-02 12:37:43 +08:00
rules chore: using uint16 for ports in Metadata 2023-08-09 13:51:02 +08:00
test chore: using uint16 for ports in Metadata 2023-08-09 13:51:02 +08:00
transport fix: TLS ALPN support 2023-08-14 15:48:13 +08:00
tunnel chore: using uint16 for ports in Metadata 2023-08-09 13:51:02 +08:00
.gitignore chore: update gitignore 2023-01-14 18:10:22 +08:00
.golangci.yaml Migration: go1.19 2022-08-07 21:45:50 +08:00
check_amd64.sh chore: add docker workflow 2022-04-28 14:18:54 +08:00
Dockerfile chore: Use Meta-geoip for default 2023-07-20 23:24:48 +08:00
flake.lock chore: update flake lock 2022-12-15 13:25:18 +08:00
flake.nix Update flake.nix (#452) 2023-03-18 19:55:29 +08:00
go.mod feat: ntp service 2023-09-02 02:15:46 +08:00
go.sum feat: ntp service 2023-09-02 02:15:46 +08:00
LICENSE License: use GPL 3.0 2019-10-18 11:12:35 +08:00
main.go chore: 当无tag时不输出无效日志 2022-06-03 21:00:45 +08:00
Makefile chore: Something update from clash :) (#606) 2023-06-06 09:45:05 +08:00
Meta.png [readme] 2021-12-09 17:54:53 +08:00
README.md chore: update readme 2023-03-30 15:57:52 +00:00

Meta Kennel
Meta Kernel

Another Clash Kernel.

Features

  • Local HTTP/HTTPS/SOCKS server with authentication support
  • VMess, Shadowsocks, Trojan, Snell protocol support for remote connections
  • Built-in DNS server that aims to minimize DNS pollution attack impact, supports DoH/DoT upstream and fake IP.
  • Rules based off domains, GEOIP, IPCIDR or Process to forward packets to different nodes
  • Remote groups allow users to implement powerful rules. Supports automatic fallback, load balancing or auto select node based off latency
  • Remote providers, allowing users to get node lists remotely instead of hardcoding in config
  • Netfilter TCP redirecting. Deploy Clash on your Internet gateway with iptables.
  • Comprehensive HTTP RESTful API controller

Wiki

Configuration examples can be found at /docs/config.yaml, while documentation can be found Clash.Meta Wiki.

Build

You should install golang first.

Then get the source code of Clash.Meta:

git clone https://github.com/MetaCubeX/Clash.Meta.git
cd Clash.Meta && go mod download

If you can't visit github,you should set proxy first:

go env -w GOPROXY=https://goproxy.io,direct

Now you can build it:

go build

If you need gvisor for tun stack, build with:

go build -tags with_gvisor

IPTABLES configuration

Work on Linux OS which supported iptables

# Enable the TPROXY listener
tproxy-port: 9898

iptables:
  enable: true # default is false
  inbound-interface: eth0 # detect the inbound interface, default is 'lo'

General installation guide for Linux

  • Create user given name clash-meta

  • Download and decompress pre-built binaries from releases

  • Rename executable file to Clash-Meta and move to /usr/local/bin/

  • Create folder /etc/Clash-Meta/ as working directory

Run Meta Kernel by user clash-meta as a daemon.

Create the systemd configuration file at /etc/systemd/system/Clash-Meta.service:

[Unit]
Description=Clash-Meta Daemon, Another Clash Kernel.
After=network.target NetworkManager.service systemd-networkd.service iwd.service

[Service]
Type=simple
User=clash-meta
Group=clash-meta
LimitNPROC=500
LimitNOFILE=1000000
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE
Restart=always
ExecStartPre=/usr/bin/sleep 1s
ExecStart=/usr/local/bin/Clash-Meta -d /etc/Clash-Meta

[Install]
WantedBy=multi-user.target

Launch clashd on system startup with:

$ systemctl enable Clash-Meta

Launch clashd immediately with:

$ systemctl start Clash-Meta

Display Process name

Clash add field Process to Metadata and prepare to get process name for Restful API GET /connections.

To display process name in GUI please use Razord-meta.

Dashboard

We also made a custom fork of yacd provide better support for this project, check it out at Yacd-meta

Development

If you want to build an application that uses clash as a library, check out the the GitHub Wiki

Debugging

Check wiki to get an instruction on using debug API.

Credits

License

This software is released under the GPL-3.0 license.

FOSSA Status