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

Make ss-redir able to listen on multiples ports

This commit is contained in:
Ycarus (Yannick Chabanois) 2020-02-06 08:22:37 +01:00
parent cf7508a58d
commit a64bba3705
3 changed files with 32 additions and 8 deletions

View file

@ -87,6 +87,7 @@ return L.Class.extend({
}
});
o.value('', '<unset>');
o.value('', 'all');
o.default = '';
},
values_serverlist: function(o) {

View file

@ -9,7 +9,7 @@ if [ "$(uci -q get openmptcprouter.latest_versions)" = "" ]; then
set shadowsocks-libev.hi$c=ss_redir
set shadowsocks-libev.hi$c.server=sss0
set shadowsocks-libev.hi$c.local_address="0.0.0.0"
set shadowsocks-libev.hi$c.local_port=1100
set shadowsocks-libev.hi$c.local_port=1101
set shadowsocks-libev.hi$c.mode=tcp_and_udp
set shadowsocks-libev.hi$c.timeout=1000
set shadowsocks-libev.hi$c.fast_open=1
@ -18,9 +18,10 @@ if [ "$(uci -q get openmptcprouter.latest_versions)" = "" ]; then
set shadowsocks-libev.hi$c.mptcp=1
set shadowsocks-libev.hi$c.no_delay=1
set shadowsocks-libev.hi$c.verbose=0
commit shadowsocks-libev
EOF
done
uci -q set shadowsocks-libev.ss_rules.redir_tcp=all
uci -q commit shadowsocks-libev
fi
fi

View file

@ -143,6 +143,16 @@ ss_rules_cb() {
fi
}
ss_redir_ports() {
port=$(uci -q get shadowsocks-libev.$1.local_port)
if [ "$port" -lt "$min_ss_redir_ports" ]; then
min_ss_redir_ports=$port
fi
if [ "$port" -gt "$max_ss_redir_ports" ]; then
max_ss_redir_ports=$port
fi
}
ss_rules() {
local cfg="ss_rules"
local bin="$ss_bindir/ss-rules"
@ -164,10 +174,22 @@ ss_rules() {
validate_ss_rules_section "$cfg" || return 1
[ "$disabled" = 0 ] || return 0
eval local_port_tcp="\$ss_rules_redir_tcp_$redir_tcp"
eval local_port_udp="\$ss_rules_redir_udp_$redir_udp"
eval local_port_tcp6="\$ss_rules6_redir_tcp_$redir_tcp"
eval local_port_udp6="\$ss_rules6_redir_udp_$redir_udp"
if [ "$ss_rules_redir_tcp_$redir_tcp" = "all" ]; then
min_ss_redir_ports="65535"
max_ss_redir_ports="0"
config_load shadowsocks-libev
config_foreach ss_redir_ports ss_redir
all_ss_redir_ports=$min_ss_redir_ports-$max_ss_redir_ports
local_port_tcp="$all_ss_redir_ports"
eval local_port_udp="\$ss_rules_redir_udp_$redir_udp"
local_port_tcp6="$all_ss_redir_ports"
eval local_port_udp6="\$ss_rules6_redir_udp_$redir_udp"
else
eval local_port_tcp="\$ss_rules_redir_tcp_$redir_tcp"
eval local_port_udp="\$ss_rules_redir_udp_$redir_udp"
eval local_port_tcp6="\$ss_rules6_redir_tcp_$redir_tcp"
eval local_port_udp6="\$ss_rules6_redir_udp_$redir_udp"
fi
[ -n "$local_port_tcp" -o -n "$local_port_udp" ] || return 1
ss_redir_servers4="$(echo "$ss_redir_servers" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
ss_redir_servers6="$(echo "$ss_redir_servers" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
@ -378,8 +400,8 @@ validate_ss_redir_section() {
validate_ss_rules_section() {
"${2:-ss_validate}" ss_rules "$1" \
'disabled:bool:0' \
'redir_tcp:uci("shadowsocks-libev", "@ss_redir")' \
'redir_udp:uci("shadowsocks-libev", "@ss_redir")' \
'redir_tcp:or(uci("shadowsocks-libev", "@ss_redir"),"all")' \
'redir_udp:or(uci("shadowsocks-libev", "@ss_redir"),"all")' \
'src_ips_bypass:or(ipaddr,cidr)' \
'src_ips_forward:or(ipaddr,cidr)' \
'src_ips_checkdst:or(ipaddr,cidr)' \