#!/bin/sh /etc/rc.common # Example script # Copyright (C) 2007 OpenWrt.org USE_PROCD=1 START=99 getconfig(){ cpath=/etc/clash ccfg=$cpath/mark if [ ! -f "$ccfg" ]; then echo mark文件不存在,默认以Redir模式运行! cat >$ccfg< /dev/null 2>&1 iptables -t nat -F clash > /dev/null 2>&1 iptables -t nat -X clash > /dev/null 2>&1 iptables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to 1053 > /dev/null 2>&1 ip6tables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to 1053 > /dev/null 2>&1 } start_tun(){ #修改iptables规则使流量进入clash iptables -I FORWARD -o utun -j ACCEPT iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to 1053 ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to 1053 } stop_tun(){ iptables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to 1053 > /dev/null 2>&1 ip6tables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to 1053 > /dev/null 2>&1 } start_service() { getconfig #创建clash后台进程 procd_open_instance procd_set_param respawn procd_set_param stderr 1 procd_set_param stdout 1 procd_set_param command $cpath/clash -d $cpath procd_close_instance #修改iptables规则使流量进入clash if [[ "$redir_mod" = "Tun模式" ]];then stop_tun start_tun mark_time else stop_redir start_redir mark_time fi } stop_service() { getconfig if [[ "$redir_mod" = "Tun模式" ]];then stop_tun else stop_redir fi }