kyra(hardening): using nixos-containers for mihomo core
Signed-off-by: s0me1newithhand7s <git+me@hand7s.org>
This commit is contained in:
parent
d10e04e07c
commit
0998e016cd
1 changed files with 126 additions and 0 deletions
126
kyra/containers/mihomo.nix
Normal file
126
kyra/containers/mihomo.nix
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
_: {
|
||||
containers = {
|
||||
"mihomo" = {
|
||||
autoStart = true;
|
||||
privateNetwork = true;
|
||||
hostAddress = "192.168.101.1";
|
||||
localAddress = "192.168.101.2";
|
||||
|
||||
bindMounts = {
|
||||
"acme" = {
|
||||
isReadOnly = true;
|
||||
hostPath = "/var/lib/acme/hand7s.org";
|
||||
mountPoint = "/var/lib/acme/hand7s.org";
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
pkgs,
|
||||
name,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
services = {
|
||||
mihomo = {
|
||||
enable = true;
|
||||
configFile = (pkgs.formats.yaml {}).generate "config.yaml" {
|
||||
dns = {
|
||||
enable = true;
|
||||
enhanced-mode = "fake-ip";
|
||||
respect-rules = true;
|
||||
nameserver = [
|
||||
"tcp://192.168.101.1:8853"
|
||||
];
|
||||
};
|
||||
|
||||
sniffer = {
|
||||
enable = true;
|
||||
sniff = {
|
||||
quic = {
|
||||
ports = [
|
||||
443
|
||||
];
|
||||
};
|
||||
|
||||
tls = {
|
||||
override-destination = true;
|
||||
ports = [
|
||||
443
|
||||
8443
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
rules = [
|
||||
"IP-CIDR,10.0.0.0/8,DIRECT,no-resolve"
|
||||
"IP-CIDR,127.0.0.0/8,DIRECT,no-resolve"
|
||||
|
||||
"MATCH,direct"
|
||||
];
|
||||
|
||||
experimental = {
|
||||
udp-base-routing = true;
|
||||
};
|
||||
|
||||
profile = {
|
||||
store-selected = false;
|
||||
store-fake-ip = false;
|
||||
};
|
||||
|
||||
listeners = [
|
||||
{
|
||||
name = "hy2-in";
|
||||
type = "hysteria2";
|
||||
listen = "[::]";
|
||||
port = 443;
|
||||
masquerade = "https://hand7s.org";
|
||||
up = "100 Mbps";
|
||||
down = "100 Mpbs";
|
||||
obfs = "salamander";
|
||||
obfs-password = lib.hashString "md5" "password";
|
||||
|
||||
certificate = "/var/lib/acme/hand7s.org/cert.pem";
|
||||
private-key = "/var/lib/acme/hand7s.org/key.pem";
|
||||
|
||||
users = [
|
||||
"hand7s:"
|
||||
];
|
||||
}
|
||||
|
||||
{
|
||||
name = "vless-in";
|
||||
type = "vless";
|
||||
listen = "[::]";
|
||||
port = 8443;
|
||||
udp = true;
|
||||
|
||||
reality-config = {
|
||||
dest = "192.168.101.1:444";
|
||||
private-key = lib.hasString "md5" "pkb";
|
||||
|
||||
short-id = [
|
||||
"shortie"
|
||||
];
|
||||
|
||||
server-names = [
|
||||
"${name}.hand7s.org"
|
||||
];
|
||||
};
|
||||
|
||||
users = [
|
||||
{
|
||||
username = "hand7s";
|
||||
flow = "xtls-rprx-vision";
|
||||
uuid = "very-real-uuid-btws";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue