UA3F/openwrt/files/ua3f.init
2025-11-27 19:17:39 +08:00

68 lines
2.1 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
# shellcheck disable=SC2034,SC3043
USE_PROCD=1
START=99
NAME="ua3f"
PROG="/usr/bin/$NAME"
start_service() {
config_load "$NAME"
mkdir -p /var/log/ua3f
chmod o+w /var/log/ua3f
touch /var/log/ua3f/ua3f.log
local enabled
config_get_bool enabled "enabled" "enabled" "0"
[ "$enabled" -eq "1" ] || return 0
local server_mode port bind ua log_level ua_regex partial_replace
local rewrite_mode rewrite_rules
local set_ttl set_ipid del_tcpts
config_get server_mode "main" "server_mode" "TPROXY"
config_get port "main" "port" "1080"
config_get bind "main" "bind" "127.0.0.1"
config_get ua "main" "ua" "FFF"
config_get ua_regex "main" "ua_regex" ""
config_get_bool partial_replace "main" "partial_replace" 0
config_get log_level "main" "log_level" "WARN"
config_get rewrite_mode "main" "rewrite_mode" "GLOBAL"
config_get rewrite_rules "main" "rewrite_rules" ""
config_get_bool set_ttl "main" "set_ttl" 0
config_get_bool set_ipid "main" "set_ipid" 0
config_get_bool del_tcpts "main" "del_tcpts" 0
local others=","
[ "$set_ipid" -eq "1" ] && others="${others}ipid,"
[ "$del_tcpts" -eq "1" ] && others="${others}tcpts,"
[ "$set_ttl" -eq "1" ] && others="${others}ttl,"
set_ua3f_group
procd_open_instance "$NAME"
procd_set_param command "$PROG"
procd_append_param command -m "$server_mode"
procd_append_param command -p "$port"
procd_append_param command -b "$bind"
procd_append_param command -f "$ua"
procd_append_param command -r "$ua_regex"
procd_append_param command -l "$log_level"
procd_append_param command -x "$rewrite_mode"
procd_append_param command -z "$rewrite_rules"
procd_append_param command -o "$others"
[ "$partial_replace" = "1" ] && procd_append_param command -s
procd_set_param respawn
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param limits nproc="unlimited" as="unlimited" memlock="unlimited" nofile="65535 65535"
procd_close_instance
}
service_triggers() {
procd_add_reload_trigger "$NAME"
}