|
|
@@ -186,11 +186,11 @@ gen_config_file() {
|
|
|
EOF
|
|
|
;;
|
|
|
vmess | vless)
|
|
|
- lua /usr/share/shadowsocksr/genv2config.lua $GLOBAL_SERVER tcp $(uci_get_by_name $1 local_port) >/var/etc/v2-ssr-retcp.json
|
|
|
+ lua /usr/share/shadowsocksr/genv2config.lua $GLOBAL_SERVER tcp $3 >/var/etc/v2-ssr-retcp.json
|
|
|
sed -i 's/\\//g' /var/etc/v2-ssr-retcp.json
|
|
|
;;
|
|
|
trojan)
|
|
|
- lua /usr/share/shadowsocksr/gentrojanconfig.lua $GLOBAL_SERVER nat $(uci_get_by_name $1 local_port) >/var/etc/trojan-ssr-retcp.json
|
|
|
+ lua /usr/share/shadowsocksr/gentrojanconfig.lua $GLOBAL_SERVER nat $3 >/var/etc/trojan-ssr-retcp.json
|
|
|
sed -i 's/\\//g' /var/etc/trojan-ssr-retcp.json
|
|
|
;;
|
|
|
naiveproxy)
|
|
|
@@ -394,6 +394,7 @@ start_redir_udp() {
|
|
|
redir_udp=1
|
|
|
local type=$(uci_get_by_name $UDP_RELAY_SERVER type)
|
|
|
local bin=$(find_bin $type)
|
|
|
+ local udp_port=1357
|
|
|
[ ! -f "$bin" ] && echo "$(date "+%Y-%m-%d %H:%M:%S") UDP TPROXY Relay:Can't find $bin program, can't start!" >>/tmp/ssrplus.log && redir_udp=0 && return 1
|
|
|
case "$type" in
|
|
|
ss | ssr)
|
|
|
@@ -403,7 +404,7 @@ start_redir_udp() {
|
|
|
esac
|
|
|
local name="Shadowsocks"
|
|
|
[ "$type" == "ssr" ] && name="ShadowsocksR"
|
|
|
- gen_config_file $UDP_RELAY_SERVER 1 $(uci_get_by_name $UDP_RELAY_SERVER local_port 1234)
|
|
|
+ gen_config_file $UDP_RELAY_SERVER 1 $udp_port
|
|
|
last_config_file=$CONFIG_UDP_FILE
|
|
|
$bin -c $last_config_file $ARG_OTA -U -f /var/run/ssr-reudp.pid >/dev/null 2>&1
|
|
|
echo "$(date "+%Y-%m-%d %H:%M:%S") UDP TPROXY Relay:$name Started!" >>/tmp/ssrplus.log
|
|
|
@@ -418,7 +419,7 @@ start_redir_udp() {
|
|
|
lua /usr/share/shadowsocksr/gentrojanconfig.lua $GLOBAL_SERVER client 10801 >/var/etc/trojan-ssr-reudp.json
|
|
|
sed -i 's/\\//g' /var/etc/trojan-ssr-reudp.json
|
|
|
$bin --config /var/etc/trojan-ssr-reudp.json >/dev/null 2>&1 &
|
|
|
- ipt2socks -U -b 0.0.0.0 -4 -s 127.0.0.1 -p 10801 -l $(uci_get_by_name $UDP_RELAY_SERVER local_port) >/dev/null 2>&1 &
|
|
|
+ ipt2socks -U -b 0.0.0.0 -4 -s 127.0.0.1 -p 10801 -l $udp_port >/dev/null 2>&1 &
|
|
|
echo "$(date "+%Y-%m-%d %H:%M:%S") UDP TPROXY Relay:$($bin --version 2>&1 | head -1) Started!" >>/tmp/ssrplus.log
|
|
|
;;
|
|
|
naiveproxy)
|
|
|
@@ -426,7 +427,7 @@ start_redir_udp() {
|
|
|
echo "$(date "+%Y-%m-%d %H:%M:%S") $($bin --version | head -1) UDP TPROXY Relay not supported!" >>/tmp/ssrplus.log
|
|
|
;;
|
|
|
socks5)
|
|
|
- /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-reudp.conf" socks5 udp $(uci_get_by_name $UDP_RELAY_SERVER local_port) \
|
|
|
+ /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-reudp.conf" socks5 udp $udp_port \
|
|
|
$(get_host_ip $(uci_get_by_name $UDP_RELAY_SERVER server)) $(uci_get_by_name $UDP_RELAY_SERVER server_port) \
|
|
|
$(uci_get_by_name $UDP_RELAY_SERVER auth_enable 0) $(uci_get_by_name $UDP_RELAY_SERVER username) $(uci_get_by_name $UDP_RELAY_SERVER password)
|
|
|
$bin -c /var/etc/redsocks-ssr-reudp.conf >/dev/null 2>&1
|
|
|
@@ -648,16 +649,23 @@ start_rules() {
|
|
|
kcp_server=$server
|
|
|
kcp_flag=1
|
|
|
fi
|
|
|
- local local_port=$(uci_get_by_name $GLOBAL_SERVER local_port)
|
|
|
+ local local_port=$(uci_get_by_name $GLOBAL_SERVER local_port 1234)
|
|
|
local lan_ac_ips=$(uci_get_by_type access_control lan_ac_ips)
|
|
|
local lan_ac_mode=$(uci_get_by_type access_control lan_ac_mode)
|
|
|
local router_proxy=$(uci_get_by_type access_control router_proxy)
|
|
|
- if [ "$GLOBAL_SERVER" == "$UDP_RELAY_SERVER" -a "$kcp_flag" == "0" ]; then
|
|
|
- ARG_UDP="-u"
|
|
|
- elif [ -n "$UDP_RELAY_SERVER" ]; then
|
|
|
- ARG_UDP="-U"
|
|
|
- local udp_server=$(uci_get_by_name $UDP_RELAY_SERVER server)
|
|
|
- local udp_local_port=$(uci_get_by_name $UDP_RELAY_SERVER local_port)
|
|
|
+ if [ -n "$UDP_RELAY_SERVER" ]; then
|
|
|
+ if [ "$kcp_flag" == "0" ]; then
|
|
|
+ local type=$(uci_get_by_name $UDP_RELAY_SERVER type)
|
|
|
+ case "$type" in
|
|
|
+ tun | naiveproxy) ;;
|
|
|
+ *) ARG_UDP="-U";;
|
|
|
+ esac
|
|
|
+ local udp_server=$(uci_get_by_name $UDP_RELAY_SERVER server)
|
|
|
+ if [ "$udp_server" == "ERROR" ]; then
|
|
|
+ udp_server=$(uci_get_by_name $UDP_RELAY_SERVER ip)
|
|
|
+ fi
|
|
|
+ local udp_local_port=1357
|
|
|
+ fi
|
|
|
fi
|
|
|
if [ -n "$lan_ac_ips" ]; then
|
|
|
case "$lan_ac_mode" in
|