mirror of
https://github.com/SunBK201/UA3F.git
synced 2025-12-16 08:44:29 +00:00
68 lines
2.1 KiB
Bash
Executable File
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"
|
|
}
|