diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 6340b4caa3..03e99dfd43 100644 --- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -78,7 +78,6 @@ o = s:option(ListValue, "pdnsd_enable", translate("Resolve Dns Mode")) o:value("1", translate("Use Pdnsd tcp query and cache")) o:value("2", translate("Use DNS2SOCKS query and cache")) o:value("0", translate("Use Local DNS Service listen port 5335")) -o:value("2", translate("Use system DNS")) o.default = 1 o = s:option(Value, "tunnel_forward", translate("Anti-pollution DNS Server")) diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index 1b22a31180..60e24da36c 100644 --- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -132,4 +132,4 @@ end m:append(Template("shadowsocksr/server_list")) -return m +return m \ No newline at end of file diff --git a/package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index ebe1f33a3a..17a1587dbc 100644 --- a/package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -517,9 +517,6 @@ msgstr "服务器节点" msgid "Use Local DNS Service listen port 5335" msgstr "使用本机端口为5335的DNS服务" -msgid "Use system DNS" -msgstr "使用系统DNS" - msgid "Server Node Type" msgstr "服务器节点类型" diff --git a/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index ceaac0fa86..d9a71257c1 100755 --- a/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -207,9 +207,9 @@ start_rules() { proxyport="-m multiport --dports 22,53,587,465,995,993,143,80,443" fi if [ "$NETFLIX_SERVER" != "same" ]; then - netflix="1" - else - netflix="0" + netflix="1" + else + netflix="0" fi /usr/bin/ssr-rules \ -s "$server" \ @@ -243,33 +243,33 @@ start_pdnsd() { fi cat <<-EOF >/var/etc/pdnsd.conf global{ - perm_cache=1024; - cache_dir="/var/pdnsd"; - pid_file="/var/run/pdnsd.pid"; - run_as="nobody"; - server_ip=127.0.0.1; - server_port=5335; - status_ctl=on; - query_method=tcp_only; - min_ttl=1h; - max_ttl=1w; - timeout=10; - neg_domain_pol=on; - proc_limit=2; - procq_limit=8; - par_queries=1; + perm_cache=1024; + cache_dir="/var/pdnsd"; + pid_file="/var/run/pdnsd.pid"; + run_as="nobody"; + server_ip=127.0.0.1; + server_port=5335; + status_ctl=on; + query_method=tcp_only; + min_ttl=1h; + max_ttl=1w; + timeout=10; + neg_domain_pol=on; + proc_limit=2; + procq_limit=8; + par_queries=1; } server{ - label="ssr-usrdns"; - ip=$usr_dns; - port=$usr_port; - timeout=6; - uptest=none; - interval=10m; - purge_cache=off; + label="ssr-usrdns"; + ip=$usr_dns; + port=$usr_port; + timeout=6; + uptest=none; + interval=10m; + purge_cache=off; } EOF - /usr/sbin/pdnsd -c /var/etc/pdnsd.conf -d & + /usr/sbin/pdnsd -c /var/etc/pdnsd.conf & } start_redir() { @@ -293,7 +293,7 @@ start_redir() { -l :$server_port $password $kcp_param kcp_enable_flag=1 fi - + gen_config_file $GLOBAL_SERVER 0 $(uci_get_by_name $GLOBAL_SERVER local_port 1234) local stype=$(uci_get_by_name $GLOBAL_SERVER type) if [ "$stype" == "ss" ]; then @@ -351,70 +351,71 @@ start_redir() { fi redir_tcp=1 if [ "$stype" == "ss" -o "$stype" == "ssr" ]; then - local last_config_file=$CONFIG_FILE - local pid_file="/var/run/ssr-retcp.pid" - for i in $(seq 1 $threads); do - $sscmd -c $CONFIG_FILE $ARG_OTA -f /var/run/ssr-retcp_$i.pid >/dev/null 2>&1 - done - echo "$(date "+%Y-%m-%d %H:%M:%S") Shadowsocks/ShadowsocksR $threads Threads Started!" >>/tmp/ssrplus.log - elif [ "$stype" == "v2ray" ]; then - $sscmd -config /var/etc/v2-ssr-retcp.json >/dev/null 2>&1 & - echo "$(date "+%Y-%m-%d %H:%M:%S") $($sscmd -version | head -1) Started!" >>/tmp/ssrplus.log - elif [ "$stype" == "trojan" ]; then - for i in $(seq 1 $threads); do - $sscmd --config /var/etc/trojan-ssr-retcp.json >/dev/null 2>&1 & - done - echo "$(date "+%Y-%m-%d %H:%M:%S") $($sscmd --version 2>&1 | head -1) , $threads Threads Started!" >>/tmp/ssrplus.log - elif [ "$stype" == "socks5" ]; then - /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-retcp.conf" socks5 tcp $(uci_get_by_name $GLOBAL_SERVER local_port) \ - $(uci_get_by_name $GLOBAL_SERVER server) $(uci_get_by_name $GLOBAL_SERVER server_port) \ - $(uci_get_by_name $GLOBAL_SERVER auth_enable 0) $(uci_get_by_name $GLOBAL_SERVER username) $(uci_get_by_name $GLOBAL_SERVER password) - for i in $(seq 1 $threads); do - $sscmd -c /var/etc/redsocks-ssr-retcp.conf >/dev/null 2>&1 - done - echo "$(date "+%Y-%m-%d %H:%M:%S") Socks5 REDIRECT/TPROXY $threads Threads Started!" >>/tmp/ssrplus.log - elif [ "$stype" == "tun" ]; then - /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-retcp.conf" vpn $(uci_get_by_name $GLOBAL_SERVER iface "br-lan") $(uci_get_by_name $GLOBAL_SERVER local_port) - for i in $(seq 1 $threads); do - $sscmd -c /var/etc/redsocks-ssr-retcp.conf >/dev/null 2>&1 - done - echo "$(date "+%Y-%m-%d %H:%M:%S") Network Tunnel REDIRECT $threads Threads Started!" >>/tmp/ssrplus.log + local last_config_file=$CONFIG_FILE + local pid_file="/var/run/ssr-retcp.pid" + for i in $(seq 1 $threads); do + $sscmd -c $CONFIG_FILE $ARG_OTA -f /var/run/ssr-retcp_$i.pid >/dev/null 2>&1 + done + echo "$(date "+%Y-%m-%d %H:%M:%S") Shadowsocks/ShadowsocksR $threads Threads Started!" >>/tmp/ssrplus.log + elif [ "$stype" == "v2ray" ]; then + $sscmd -config /var/etc/v2-ssr-retcp.json >/dev/null 2>&1 & + echo "$(date "+%Y-%m-%d %H:%M:%S") $($sscmd -version | head -1) Started!" >>/tmp/ssrplus.log + elif [ "$stype" == "trojan" ]; then + for i in $(seq 1 $threads); do + $sscmd --config /var/etc/trojan-ssr-retcp.json >/dev/null 2>&1 & + done + echo "$(date "+%Y-%m-%d %H:%M:%S") $($sscmd --version 2>&1 | head -1) , $threads Threads Started!" >>/tmp/ssrplus.log + elif [ "$stype" == "socks5" ]; then + /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-retcp.conf" socks5 tcp $(uci_get_by_name $GLOBAL_SERVER local_port) \ + $(uci_get_by_name $GLOBAL_SERVER server) $(uci_get_by_name $GLOBAL_SERVER server_port) \ + $(uci_get_by_name $GLOBAL_SERVER auth_enable 0) $(uci_get_by_name $GLOBAL_SERVER username) $(uci_get_by_name $GLOBAL_SERVER password) + for i in $(seq 1 $threads); do + $sscmd -c /var/etc/redsocks-ssr-retcp.conf >/dev/null 2>&1 + done + echo "$(date "+%Y-%m-%d %H:%M:%S") Socks5 REDIRECT/TPROXY $threads Threads Started!" >>/tmp/ssrplus.log + elif [ "$stype" == "tun" ]; then + /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-retcp.conf" vpn $(uci_get_by_name $GLOBAL_SERVER iface "br-lan") $(uci_get_by_name $GLOBAL_SERVER local_port) + for i in $(seq 1 $threads); do + $sscmd -c /var/etc/redsocks-ssr-retcp.conf >/dev/null 2>&1 + done + echo "$(date "+%Y-%m-%d %H:%M:%S") Network Tunnel REDIRECT $threads Threads Started!" >>/tmp/ssrplus.log fi - + if [ "$NETFLIX_SERVER" != "same" ]; then - if [ "$ntype" == "ss" -o "$ntype" == "ssr" ]; then - gen_config_file $NETFLIX_SERVER 2 4321 - gen_config_file $NETFLIX_SERVER 3 1088 - $sssock -c /var/etc/shadowsocksr_s.json $ARG_OTA -f /var/run/ssr-socksdns.pid >/dev/null 2>&1 - dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 & - $ncmd -c /var/etc/shadowsocksr_n.json $ARG_OTA -f /var/run/ssr-netflix.pid >/dev/null 2>&1 - elif [ "$ntype" == "v2ray" ]; then - lua /usr/share/shadowsocksr/genv2nfconfig.lua $NETFLIX_SERVER tcp 4321 >/var/etc/v2-ssr-netflix.json - $ncmd -config /var/etc/v2-ssr-netflix.json >/dev/null 2>&1 & - dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 & - elif [ "$ntype" == "trojan" ]; then - lua /usr/share/shadowsocksr/gentrojanconfig.lua $NETFLIX_SERVER nat 4321 >/var/etc/trojan-ssr-netflix.json - sed -i 's/\\//g' /var/etc/trojan-ssr-netflix.json - $ncmd --config /var/etc/trojan-ssr-netflix.json >/dev/null 2>&1 & - lua /usr/share/shadowsocksr/gentrojanconfig.lua $NETFLIX_SERVER client 1088 >/var/etc/trojan-ssr-socksdns.json - sed -i 's/\\//g' /var/etc/trojan-ssr-socksdns.json - $ncmd --config /var/etc/trojan-ssr-socksdns.json >/dev/null 2>&1 & - dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 & - elif [ "$ntype" == "socks5" ]; then - /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-netflix.conf" socks5 tcp 4321 \ - $(uci_get_by_name $NETFLIX_SERVER server) $(uci_get_by_name $NETFLIX_SERVER server_port) \ - $(uci_get_by_name $NETFLIX_SERVER auth_enable 0) $(uci_get_by_name $NETFLIX_SERVER username) $(uci_get_by_name $NETFLIX_SERVER password) - $ncmd -c /var/etc/redsocks-ssr-netflix.conf >/dev/null 2>&1 - microsocks -i 127.0.0.1 -p 1088 ssr-socksdns >/dev/null 2>&1 & - dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 & - elif [ "$ntype" == "tun" ]; then - /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-netflix.conf" vpn $(uci_get_by_name $NETFLIX_SERVER iface "br-lan") 4321 - $ncmd -c /var/etc/redsocks-ssr-netflix.conf >/dev/null 2>&1 - microsocks -i 127.0.0.1 -p 1088 ssr-socksdns >/dev/null 2>&1 & - dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 & - fi - fi - + if [ "$ntype" == "ss" -o "$ntype" == "ssr" ]; then + gen_config_file $NETFLIX_SERVER 2 4321 + gen_config_file $NETFLIX_SERVER 3 1088 + $sssock -c /var/etc/shadowsocksr_s.json $ARG_OTA -f /var/run/ssr-socksdns.pid >/dev/null 2>&1 + dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 & + $ncmd -c /var/etc/shadowsocksr_n.json $ARG_OTA -f /var/run/ssr-netflix.pid >/dev/null 2>&1 + elif [ "$ntype" == "v2ray" ]; then + lua /usr/share/shadowsocksr/genv2nfconfig.lua $NETFLIX_SERVER tcp 4321 >/var/etc/v2-ssr-netflix.json + $ncmd -config /var/etc/v2-ssr-netflix.json >/dev/null 2>&1 & + dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 & + elif [ "$ntype" == "trojan" ]; then + lua /usr/share/shadowsocksr/gentrojanconfig.lua $NETFLIX_SERVER nat 4321 >/var/etc/trojan-ssr-netflix.json + sed -i 's/\\//g' /var/etc/trojan-ssr-netflix.json + $ncmd --config /var/etc/trojan-ssr-netflix.json >/dev/null 2>&1 & + lua /usr/share/shadowsocksr/gentrojanconfig.lua $NETFLIX_SERVER client 1088 >/var/etc/trojan-ssr-socksdns.json + sed -i 's/\\//g' /var/etc/trojan-ssr-socksdns.json + $ncmd --config /var/etc/trojan-ssr-socksdns.json >/dev/null 2>&1 & + dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 & + elif [ "$ntype" == "socks5" ]; then + /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-netflix.conf" socks5 tcp 4321 \ + $(uci_get_by_name $NETFLIX_SERVER server) $(uci_get_by_name $NETFLIX_SERVER server_port) \ + $(uci_get_by_name $NETFLIX_SERVER auth_enable 0) $(uci_get_by_name $NETFLIX_SERVER username) $(uci_get_by_name $NETFLIX_SERVER password) + $ncmd -c /var/etc/redsocks-ssr-netflix.conf >/dev/null 2>&1 + microsocks -i 127.0.0.1 -p 1088 ssr-socksdns >/dev/null 2>&1 & + dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 & + elif [ "$ntype" == "tun" ]; then + /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-netflix.conf" vpn $(uci_get_by_name $NETFLIX_SERVER iface "br-lan") 4321 + $ncmd -c /var/etc/redsocks-ssr-netflix.conf >/dev/null 2>&1 + microsocks -i 127.0.0.1 -p 1088 ssr-socksdns >/dev/null 2>&1 & + dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 & + fi + fi + + if [ -n "$UDP_RELAY_SERVER" ]; then redir_udp=1 if [ "$utype" == "ss" -o "$utype" == "ssr" ]; then @@ -436,10 +437,10 @@ start_redir() { $ucmd --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 & elif [ "$utype" == "socks5" ]; then - /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-reudp.conf" socks5 udp $(uci_get_by_name $UDP_RELAY_SERVER local_port) \ - $(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) - $ucmd -c /var/etc/redsocks-ssr-reudp.conf >/dev/null 2>&1 + /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-reudp.conf" socks5 udp $(uci_get_by_name $UDP_RELAY_SERVER local_port) \ + $(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) + $ucmd -c /var/etc/redsocks-ssr-reudp.conf >/dev/null 2>&1 elif [ "$stype" == "tun" ]; then redir_udp=0 echo "$(date "+%Y-%m-%d %H:%M:%S") Network Tunnel UDP TPROXY Relay not supported!" >>/tmp/ssrplus.log @@ -507,9 +508,9 @@ start_service() { [ $(uci_get_by_name $1 enable 0) == "0" ] && return 1 let server_count=server_count+1 if [ "$server_count" == "1" ]; then - if ! (iptables-save -t filter | grep SSR-SERVER-RULE >/dev/null); then - iptables -N SSR-SERVER-RULE && \ - iptables -t filter -I INPUT -j SSR-SERVER-RULE + if ! (iptables-save -t filter | grep SSR-SERVER-RULE >/dev/null); then + iptables -N SSR-SERVER-RULE && \ + iptables -t filter -I INPUT -j SSR-SERVER-RULE fi fi gen_service_file $1 /var/etc/${NAME}_$server_count.json @@ -554,19 +555,19 @@ start_local() { local auth_enable=$(uci_get_by_type socks5_proxy auth_enable 0) local socks_port=$(uci_get_by_type socks5_proxy local_port 1080) if [ "$auth_enable" == "1" ]; then - microsocks -i :: -p $socks_port -1 -u $(uci_get_by_type socks5_proxy username) -P $(uci_get_by_type socks5_proxy password) ssr-socks >/dev/null 2>&1 & + microsocks -i :: -p $socks_port -1 -u $(uci_get_by_type socks5_proxy username) -P $(uci_get_by_type socks5_proxy password) ssr-socks >/dev/null 2>&1 & else - microsocks -i :: -p $socks_port ssr-socks >/dev/null 2>&1 & + microsocks -i :: -p $socks_port ssr-socks >/dev/null 2>&1 & fi local_enable=1 if [ "$(uci_get_by_type socks5_proxy wan_enable 0)" == "1" ]; then - if ! (iptables-save -t filter | grep SSR-SERVER-RULE >/dev/null); then - iptables -N SSR-SERVER-RULE && \ - iptables -t filter -I INPUT -j SSR-SERVER-RULE - fi - iptables -t filter -A SSR-SERVER-RULE -p tcp --dport $socks_port -j ACCEPT - iptables -t filter -A SSR-SERVER-RULE -p udp --dport $socks_port -j ACCEPT - gen_serv_include + if ! (iptables-save -t filter | grep SSR-SERVER-RULE >/dev/null); then + iptables -N SSR-SERVER-RULE && \ + iptables -t filter -I INPUT -j SSR-SERVER-RULE + fi + iptables -t filter -A SSR-SERVER-RULE -p tcp --dport $socks_port -j ACCEPT + iptables -t filter -A SSR-SERVER-RULE -p udp --dport $socks_port -j ACCEPT + gen_serv_include fi } @@ -589,7 +590,7 @@ start() { GLOBAL_SERVER=$switch_server switch_enable=1 fi - + NETFLIX_SERVER=$(uci_get_by_type global netflix_server same) if [ "$NETFLIX_SERVER" == "same" ]; then NETFLIX_SERVER=$GLOBAL_SERVER @@ -611,17 +612,18 @@ start() { rm -f /tmp/dnsmasq.ssr/ad.conf fi /usr/share/shadowsocksr/gfw2ipset.sh - - cat /etc/config/netflix.list | while read line || [ -n "$line" ]; - do - sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_list.conf - done - - if [ "$NETFLIX_SERVER" != "same" ]; then - awk '!/^$/&&!/^#/{printf("ipset=/.%s/'"netflix"'\n",$0)}' /etc/config/netflix.list > /tmp/dnsmasq.ssr/netflix_forward.conf - awk '!/^$/&&!/^#/{printf("server=/.%s/'"127.0.0.1#5555"'\n",$0)}' /etc/config/netflix.list >> /tmp/dnsmasq.ssr/netflix_forward.conf - fi - + + if [ "$NETFLIX_SERVER" != "same" ]; then + cat /etc/config/netflix.list | while read line || [ -n "$line" ]; + do + sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_list.conf + done + awk '!/^$/&&!/^#/{printf("ipset=/.%s/'"netflix"'\n",$0)}' /etc/config/netflix.list > /tmp/dnsmasq.ssr/netflix_forward.conf + awk '!/^$/&&!/^#/{printf("server=/.%s/'"127.0.0.1#5555"'\n",$0)}' /etc/config/netflix.list >> /tmp/dnsmasq.ssr/netflix_forward.conf + else + rm -f /tmp/dnsmasq.ssr/netflix_forward.conf + fi + /etc/init.d/dnsmasq restart >/dev/null 2>&1 fi start_server @@ -633,23 +635,23 @@ start() { service_start /usr/bin/ssr-monitor $server_count $redir_tcp $redir_udp $tunnel_enable $kcp_enable_flag $local_enable $pdnsd_enable_flag $switch_enable fi fi - + ENABLE_SERVER=$(uci_get_by_type global global_server nil) - if [ "$ENABLE_SERVER" == "nil" ]; then - return 1 - else - STYPE=$(uci_get_by_name $ENABLE_SERVER type nil) - if [ "$STYPE" == "nil" ]; then - CFGID=$(uci_get_by_cfgid servers type nil) - if [ "$CFGID" == "nil" ]; then - uci set shadowsocksr.@global[0].global_server='nil' - else - uci set shadowsocksr.@global[0].global_server=$CFGID - fi - uci commit shadowsocksr - /etc/init.d/shadowsocksr restart - fi - fi + if [ "$ENABLE_SERVER" == "nil" ]; then + return 1 + else + STYPE=$(uci_get_by_name $ENABLE_SERVER type nil) + if [ "$STYPE" == "nil" ]; then + CFGID=$(uci_get_by_cfgid servers type nil) + if [ "$CFGID" == "nil" ]; then + uci set shadowsocksr.@global[0].global_server='nil' + else + uci set shadowsocksr.@global[0].global_server=$CFGID + fi + uci commit shadowsocksr + /etc/init.d/shadowsocksr restart + fi + fi } boot() { @@ -685,11 +687,7 @@ stop() { killall -q -9 dns2socks killall -q -9 microsocks killall -q -9 redsocks2 - if [ -f /var/run/pdnsd.pid ]; then - kill $(cat /var/run/pdnsd.pid) >/dev/null 2>&1 - else - kill -9 $(busybox ps -w | grep pdnsd | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - fi + killall -q -9 pdnsd if [ -f "/tmp/dnsmasq.d/dnsmasq-ssr.conf" ]; then rm -f /tmp/dnsmasq.d/dnsmasq-ssr.conf /etc/init.d/dnsmasq restart >/dev/null 2>&1