1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

Add XRay and Shadowsocks Rust support for omr-tracker

This commit is contained in:
Ycarus (Yannick Chabanois) 2023-09-29 15:03:16 +02:00
parent 339198a19e
commit cc2df89ed3
3 changed files with 289 additions and 15 deletions

View file

@ -187,6 +187,38 @@ _initialize_shadowsocks_tracker() {
# }
}
_initialize_shadowsocks_rust_tracker() {
local redir_tcp server tracker_server
server=$1
[ -n "$(echo $server | grep sss)" ] || return
[ -z "$server" ] && return
#redir_tcp=$(uci -q get shadowsocks-libev.ss_rules.redir_tcp)
#config_get tracker_server ss_rules server
config_get ss_rust_disabled $server disabled 0
[ "$ss_rust_disabled" = "0" ] && ss_rust_enable="1"
[ -z "$(uci -q get shadowsocks-rust.tracker_${server})" ] && [ "$ss_rust_disabled" != "1" ] && {
logger -t "omr-tracker" "Create ShadowSock tracker ss_local..."
uci -q batch <<-EOF >/dev/null
set shadowsocks-rust.tracker_${server}=ss_local
set shadowsocks-rust.tracker_${server}.server=$server
set shadowsocks-rust.tracker_${server}.local_address="127.0.0.1"
set shadowsocks-rust.tracker_${server}.local_port=1111
set shadowsocks-rust.tracker_${server}.mode=tcp_and_udp
set shadowsocks-rust.tracker_${server}.timeout=600
set shadowsocks-rust.tracker_${server}.fast_open=0
set shadowsocks-rust.tracker_${server}.syslog=0
set shadowsocks-rust.tracker_${server}.reuse_port=1
set shadowsocks-rust.tracker_${server}.mptcp=1
set shadowsocks-rust.tracker_${server}.verbose=0
commit shadowsocks-rust
EOF
logger -t "omr-tracker" "Restart ShadowSocks"
/etc/init.d/shadowsocks-rust restart
}
}
_launch_shadowsocks_tracker() {
local hosts timeout tries interval local_port enabled server wait_test
@ -201,7 +233,7 @@ _launch_shadowsocks_tracker() {
[ "$enabled" = "0" ] || [ "$disabled" = "1" ] || [ -z "$hosts" ] && return
[ -z "$server" ] && return
[ "$(uci -q get shadowsocks-libev.$server.server)" = "192.168.1.3" ] || [ "$(uci -q get shadowsocks-libev.$server.server)" = "" ] && return
[ "$server" = "192.168.1.3" ] || [ "$server" = "" ] && return
procd_open_instance
# shellcheck disable=SC2086
@ -211,8 +243,43 @@ _launch_shadowsocks_tracker() {
procd_append_param env "OMR_TRACKER_TRIES=$tries"
procd_append_param env "OMR_TRACKER_INTERVAL=$interval"
procd_append_param env "OMR_TRACKER_PROXY=127.0.0.1:$local_port"
procd_append_param env "OMR_TRACKER_WAIT_TEST=$wait_test"
procd_append_param env "OMR_TRACKER_WAIT_TEST=$type"
procd_append_param env "OMR_TRACKER_SERVER=$server"
procd_append_param env "OMR_TRACKER_SS_TYPE=libev"
procd_set_param limits nofile="51200 51200"
procd_set_param respawn 0 10 0
procd_set_param stderr 1
procd_close_instance
sleep 1
}
_launch_shadowsocks_rust_tracker() {
local hosts timeout tries interval local_port enabled server wait_test
[ "$(echo $1 | grep tracker)" != "" ] || return
_validate_section "proxy" "proxy"
config_get local_port "$1" local_port
local disabled
config_get disabled "$1" disabled 0
config_get server "$1" server
[ "$enabled" = "0" ] || [ "$disabled" = "1" ] || [ -z "$hosts" ] && return
[ -z "$server" ] && return
[ "$server" = "192.168.1.3" ] || [ "$server" = "" ] && return
procd_open_instance
# shellcheck disable=SC2086
procd_set_param command /bin/omr-tracker-ss "$1"
procd_append_param env "OMR_TRACKER_HOSTS=$hosts"
procd_append_param env "OMR_TRACKER_TIMEOUT=$timeout"
procd_append_param env "OMR_TRACKER_TRIES=$tries"
procd_append_param env "OMR_TRACKER_INTERVAL=$interval"
procd_append_param env "OMR_TRACKER_PROXY=127.0.0.1:$local_port"
procd_append_param env "OMR_TRACKER_WAIT_TEST=$type"
procd_append_param env "OMR_TRACKER_SERVER=$server"
procd_append_param env "OMR_TRACKER_SS_TYPE=rust"
procd_set_param limits nofile="51200 51200"
procd_set_param respawn 0 10 0
procd_set_param stderr 1
@ -242,6 +309,28 @@ _launch_v2ray_tracker() {
sleep 1
}
_launch_xray_tracker() {
local hosts timeout tries interval local_port enabled server wait_test
_validate_section "proxy" "proxy"
[ "$enabled" = "0" ] || [ -z "$hosts" ] && return
procd_open_instance
# shellcheck disable=SC2086
procd_set_param command /bin/omr-tracker-xray "$1"
procd_append_param env "OMR_TRACKER_HOSTS=$hosts"
procd_append_param env "OMR_TRACKER_TIMEOUT=$timeout"
procd_append_param env "OMR_TRACKER_TRIES=$tries"
procd_append_param env "OMR_TRACKER_INTERVAL=$interval"
procd_append_param env "OMR_TRACKER_PROXY=127.0.0.1:1111"
procd_append_param env "OMR_TRACKER_WAIT_TEST=$wait_test"
procd_set_param limits nofile="51200 51200"
procd_set_param respawn 0 10 0
procd_set_param stderr 1
procd_close_instance
sleep 1
}
_multi_server() {
config_get backup $1 backup
[ "$backup" = "1" ] && multiserver=true
@ -254,10 +343,14 @@ _gre_tunnel() {
start_service() {
local ss_enable=0
local ss_rust_enable=0
logger -t "omr-tracker" "Launching..."
config_load shadowsocks-libev
config_foreach _initialize_shadowsocks_tracker server
config_load shadowsocks-rust
config_foreach _initialize_shadowsocks_rust_tracker server
config_load network
config_foreach _launch_tracker interface
@ -267,11 +360,21 @@ start_service() {
#elif [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ]; then
# /etc/init.d/shadowsocks-libev rules_down
fi
if [ "$ss_rust_enable" = "1" ]; then
config_load shadowsocks-rust
config_foreach _launch_shadowsocks_rust_tracker ss_local
fi
config_load v2ray
config_get v2rayenabled main enabled
if [ "$v2rayenabled" = "1" ]; then
_launch_v2ray_tracker
fi
config_load xray
config_get xrayenabled main enabled
if [ "$xrayenabled" = "1" ]; then
_launch_xray_tracker
fi
multiserver=false
config_load openmptcprouter
@ -285,7 +388,7 @@ start_service() {
}
service_triggers() {
procd_add_reload_trigger omr-tracker network shadowsocks-libev v2ray
procd_add_reload_trigger omr-tracker network shadowsocks-libev v2ray xray
}
reload_service() {