parent
96ebf8f35e
commit
e9f8d235e2
@ -5,9 +5,9 @@ PKG_RELEASE:=1
|
|||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://github.com/MetaCubeX/mihomo.git
|
PKG_SOURCE_URL:=https://github.com/MetaCubeX/mihomo.git
|
||||||
PKG_SOURCE_DATE:=2025-03-20
|
PKG_SOURCE_DATE:=2025-04-06
|
||||||
PKG_SOURCE_VERSION:=0f32c054f47641a2ee9c9362fc65652e772924b2
|
PKG_SOURCE_VERSION:=9e8f4ada4754ae95b002535acbeb457e40b06731
|
||||||
PKG_MIRROR_HASH:=276f1dcc81b3cece5c7de5b16ddac8d596bf20e7c3bb8993d963042acf845a14
|
PKG_MIRROR_HASH:=1c8a7d70de0cb903b58eca1937b6561003cae7e76f9f021fd3eb9007b6a1f65f
|
||||||
|
|
||||||
PKG_LICENSE:=GPL3.0+
|
PKG_LICENSE:=GPL3.0+
|
||||||
PKG_MAINTAINER:=Joseph Mory <morytyann@gmail.com>
|
PKG_MAINTAINER:=Joseph Mory <morytyann@gmail.com>
|
||||||
@ -16,7 +16,7 @@ PKG_BUILD_DEPENDS:=golang/host
|
|||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
PKG_BUILD_FLAGS:=no-mips16
|
PKG_BUILD_FLAGS:=no-mips16
|
||||||
|
|
||||||
PKG_BUILD_VERSION:=alpha-0f32c05
|
PKG_BUILD_VERSION:=alpha-9e8f4ad
|
||||||
PKG_BUILD_TIME:=$(shell date -u -Iseconds)
|
PKG_BUILD_TIME:=$(shell date -u -Iseconds)
|
||||||
|
|
||||||
GO_PKG:=github.com/metacubex/mihomo
|
GO_PKG:=github.com/metacubex/mihomo
|
||||||
|
@ -175,17 +175,9 @@ service_started() {
|
|||||||
## cgroupfs-mount
|
## cgroupfs-mount
|
||||||
### when cgroupfs-mount is installed, cgroupv1 will mounted instead of cgroupv2, we need to create cgroup manually
|
### when cgroupfs-mount is installed, cgroupv1 will mounted instead of cgroupv2, we need to create cgroup manually
|
||||||
if (mount | grep -q -w "^cgroup"); then
|
if (mount | grep -q -w "^cgroup"); then
|
||||||
local cgroup_v1_path; cgroup_v1_path="/sys/fs/cgroup/net_cls/$CGROUP_NAME"
|
mkdir -p "/sys/fs/cgroup/net_cls/$CGROUP_NAME"
|
||||||
mkdir -p "$cgroup_v1_path"
|
echo "$CGROUP_ID" > "/sys/fs/cgroup/net_cls/$CGROUP_NAME/net_cls.classid"
|
||||||
echo "$CGROUP_ID" > "$cgroup_v1_path/net_cls.classid"
|
cat "$PID_FILE_PATH" > "/sys/fs/cgroup/net_cls/$CGROUP_NAME/cgroup.procs"
|
||||||
cat "$PID_FILE_PATH" > "$cgroup_v1_path/cgroup.procs"
|
|
||||||
# local bypass_cgroup; config_get bypass_cgroup "proxy" "bypass_cgroup"
|
|
||||||
# if [ -n "$bypass_cgroup" ]; then
|
|
||||||
# local cgroup
|
|
||||||
# for cgroup in $bypass_cgroup; do
|
|
||||||
# ubus call service list "{\"name\": \"$cgroup\"}" | jsonfilter -e "$.$cgroup.instances.*.pid" >> "$cgroup_v1_path/cgroup.procs"
|
|
||||||
# done
|
|
||||||
# fi
|
|
||||||
fi
|
fi
|
||||||
## kmod-br-netfilter
|
## kmod-br-netfilter
|
||||||
### when kmod-br-netfilter is loaded, bridge-nf-call-iptables and bridge-nf-call-ip6tables are set to 1, we need to set them to 0 if tproxy is enabled
|
### when kmod-br-netfilter is loaded, bridge-nf-call-iptables and bridge-nf-call-ip6tables are set to 1, we need to set them to 0 if tproxy is enabled
|
||||||
@ -299,14 +291,13 @@ cleanup() {
|
|||||||
nft delete rule inet fw4 forward handle "$handle"
|
nft delete rule inet fw4 forward handle "$handle"
|
||||||
done
|
done
|
||||||
# delete started flag
|
# delete started flag
|
||||||
rm -f "$STARTED_FLAG_PATH"
|
rm "$STARTED_FLAG_PATH" > /dev/null 2>&1
|
||||||
# revert fix compatible between tproxy and dockerd (kmod-br-netfilter)
|
# revert fix compatible with dockerd
|
||||||
if [ -f "$BRIDGE_NF_CALL_IPTABLES_FLAG_PATH" ]; then
|
## kmod-br-netfilter
|
||||||
rm -f "$BRIDGE_NF_CALL_IPTABLES_FLAG_PATH"
|
if (rm "$BRIDGE_NF_CALL_IPTABLES_FLAG_PATH" > /dev/null 2>&1); then
|
||||||
sysctl -q -w net.bridge.bridge-nf-call-iptables=1
|
sysctl -q -w net.bridge.bridge-nf-call-iptables=1
|
||||||
fi
|
fi
|
||||||
if [ -f "$BRIDGE_NF_CALL_IP6TABLES_FLAG_PATH" ]; then
|
if (rm "$BRIDGE_NF_CALL_IP6TABLES_FLAG_PATH" > /dev/null 2>&1); then
|
||||||
rm -f "$BRIDGE_NF_CALL_IP6TABLES_FLAG_PATH"
|
|
||||||
sysctl -q -w net.bridge.bridge-nf-call-ip6tables=1
|
sysctl -q -w net.bridge.bridge-nf-call-ip6tables=1
|
||||||
fi
|
fi
|
||||||
# delete cron
|
# delete cron
|
||||||
|
@ -27,7 +27,7 @@ LOG_DIR="/var/log/nikki"
|
|||||||
APP_LOG_PATH="$LOG_DIR/app.log"
|
APP_LOG_PATH="$LOG_DIR/app.log"
|
||||||
CORE_LOG_PATH="$LOG_DIR/core.log"
|
CORE_LOG_PATH="$LOG_DIR/core.log"
|
||||||
|
|
||||||
# flag
|
# temp
|
||||||
TEMP_DIR="/var/run/nikki"
|
TEMP_DIR="/var/run/nikki"
|
||||||
PID_FILE_PATH="$TEMP_DIR/nikki.pid"
|
PID_FILE_PATH="$TEMP_DIR/nikki.pid"
|
||||||
STARTED_FLAG_PATH="$TEMP_DIR/started.flag"
|
STARTED_FLAG_PATH="$TEMP_DIR/started.flag"
|
||||||
|
@ -20,39 +20,6 @@ proxy_fake_ip_ping_hijack=$(uci -q get nikki.proxy.fake_ip_ping_hijack); [ -z "$
|
|||||||
|
|
||||||
# since v1.20.0
|
# since v1.20.0
|
||||||
|
|
||||||
mixin=$(uci -q get nikki.config.mixin); [ -n "$mixin" ] && {
|
|
||||||
uci del nikki.config.mixin
|
|
||||||
[ "$mixin" == "0" ] && {
|
|
||||||
uci del nikki.mixin.unify_delay
|
|
||||||
uci del nikki.mixin.tcp_concurrent
|
|
||||||
uci del nikki.mixin.tcp_keep_alive_idle
|
|
||||||
uci del nikki.mixin.tcp_keep_alive_interval
|
|
||||||
uci set nikki.mixin.fake_ip_filter=0
|
|
||||||
uci del nikki.mixin.fake_ip_filter_mode
|
|
||||||
uci del nikki.mixin.dns_respect_rules
|
|
||||||
uci del nikki.mixin.dns_doh_prefer_http3
|
|
||||||
uci del nikki.mixin.dns_system_hosts
|
|
||||||
uci del nikki.mixin.dns_hosts
|
|
||||||
uci set nikki.mixin.hosts=0
|
|
||||||
uci set nikki.mixin.dns_nameserver=0
|
|
||||||
uci set nikki.mixin.dns_nameserver_policy=0
|
|
||||||
uci del nikki.mixin.sniffer
|
|
||||||
uci del nikki.mixin.sniffer_sniff_dns_mapping
|
|
||||||
uci del nikki.mixin.sniffer_sniff_pure_ip
|
|
||||||
uci set nikki.mixin.sniffer_force_domain_name=0
|
|
||||||
uci set nikki.mixin.sniffer_ignore_domain_name=0
|
|
||||||
uci set nikki.mixin.sniffer_sniff=0
|
|
||||||
uci del nikki.mixin.geoip_format
|
|
||||||
uci del nikki.mixin.geodata_loader
|
|
||||||
uci del nikki.mixin.geosite_url
|
|
||||||
uci del nikki.mixin.geoip_mmdb_url
|
|
||||||
uci del nikki.mixin.geoip_dat_url
|
|
||||||
uci del nikki.mixin.geoip_asn_url
|
|
||||||
uci del nikki.mixin.geox_auto_update
|
|
||||||
uci del nikki.mixin.geox_update_interval
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mixin_api_port=$(uci -q get nikki.mixin.api_port); [ -n "$mixin_api_port" ] && {
|
mixin_api_port=$(uci -q get nikki.mixin.api_port); [ -n "$mixin_api_port" ] && {
|
||||||
uci del nikki.mixin.api_port
|
uci del nikki.mixin.api_port
|
||||||
uci set nikki.mixin.api_listen=[::]:$mixin_api_port
|
uci set nikki.mixin.api_listen=[::]:$mixin_api_port
|
||||||
@ -63,17 +30,6 @@ mixin_dns_port=$(uci -q get nikki.mixin.dns_port); [ -n "$mixin_dns_port" ] && {
|
|||||||
uci set nikki.mixin.dns_listen=[::]:$mixin_dns_port
|
uci set nikki.mixin.dns_listen=[::]:$mixin_dns_port
|
||||||
}
|
}
|
||||||
|
|
||||||
# since v1.21.0
|
|
||||||
|
|
||||||
proxy_bypass_cgroup=$(uci -q get nikki.proxy.bypass_cgroup); [ -z "$proxy_bypass_cgroup" ] && {
|
|
||||||
uci add_list nikki.proxy.bypass_cgroup=adguardhome
|
|
||||||
uci add_list nikki.proxy.bypass_cgroup=aria2
|
|
||||||
uci add_list nikki.proxy.bypass_cgroup=dnsmasq
|
|
||||||
uci add_list nikki.proxy.bypass_cgroup=netbird
|
|
||||||
uci add_list nikki.proxy.bypass_cgroup=qbittorrent
|
|
||||||
uci add_list nikki.proxy.bypass_cgroup=tailscale
|
|
||||||
uci add_list nikki.proxy.bypass_cgroup=zerotier
|
|
||||||
}
|
|
||||||
|
|
||||||
# commit
|
# commit
|
||||||
uci commit nikki
|
uci commit nikki
|
||||||
|
@ -364,7 +364,7 @@ table inet nikki {
|
|||||||
meta nfproto @proxy_nfproto meta l4proto tcp counter redirect to :{{ redir_port }}
|
meta nfproto @proxy_nfproto meta l4proto tcp counter redirect to :{{ redir_port }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if (fake_ip_ping_hijack): %}
|
{% if (fake_ip_ping_hijack): %}
|
||||||
ip protocol icmp ip daddr {{ fake_ip_range }} counter redirect
|
ip protocol icmp icmp type echo-request ip daddr {{ fake_ip_range }} counter redirect
|
||||||
{% endif %}
|
{% endif %}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,7 +429,7 @@ table inet nikki {
|
|||||||
meta nfproto @proxy_nfproto jump lan_redirect
|
meta nfproto @proxy_nfproto jump lan_redirect
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if (fake_ip_ping_hijack): %}
|
{% if (fake_ip_ping_hijack): %}
|
||||||
ip protocol icmp ip daddr {{ fake_ip_range }} counter redirect
|
ip protocol icmp icmp type echo-request ip daddr {{ fake_ip_range }} counter redirect
|
||||||
{% endif %}
|
{% endif %}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ export function trim_all(obj) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export function get_cgroups_version() {
|
export function get_cgroups_version() {
|
||||||
return system('mount | grep -q -w -e "^cgroup"') == 0 ? 1 : 2;
|
return system('mount | grep -q -w "^cgroup"') == 0 ? 1 : 2;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function get_users() {
|
export function get_users() {
|
||||||
|
Loading…
Reference in New Issue
Block a user